Иногда после перезагрузки некоторые из моих приложений с графическим интерфейсом закрывались. Эти приложения также имеют веб-интерфейс, но только если их графический интерфейс открыт. Если устройство физически доступно для меня, я могу запустить экран с помощью команды screen, отсоединиться от него, и если мне когда-нибудь понадобится открыть что-нибудь еще, для чего требуется графический интерфейс, я могу повторно подключиться к тому же экрану для выполнения задачи. IE> пока на сервере (физически)
screen -S display
тогда я могу быть на любом компьютере (удаленно через ssh)
screen -r display
transmission-gtk&
Приведенный выше код затем откроет передачу-gtk
но, если у меня нет экрана, подключенного к физической машине, передача-gtk выведет
error, no display attached.
Примечание: я знаю, что есть передача из командной строки, как и в большинстве других приложений. однако именно так я хочу это делать.
Так вот в чем вопрос! Как создать этот "экран" при загрузке. В какой RC я его вставил.
Спасибо
Ладно. Прошло время, но вот «частичное» решение.
Если на рабочем столе, я запускаю сеанс терминала и запускаю screen
. Этот недавно созданный сеанс терминала /screen
имеет доступ к x11
прочее.
Поэтому я могу запустить transmission-gtk
или что-то еще из командной строки, войдя и снова подключив экран.
Пожалуйста, добавьте к этому, если вы найдете способ запустить экран из графического интерфейса при загрузке.
Я думаю, что «ошибка, дисплей не подключен» возникает из-за того, что вы пытаетесь запустить программу с графическим интерфейсом пользователя из экран Терминал. Могу ошибаться, но насколько я знаю, экран не имеет связи с дисплеями графического интерфейса.
Но чтобы ответить на ваш вопрос, предложение @rlduffy об использовании rc.local - хорошее место для начала. Вам нужно будет добавить строку в rc.local, как показано ниже, которая запустит экран процесс в автономном режиме:
/bin/su --login -c "/usr/bin/screen -d -m -t myscreen /bin/sh -c command_you_want_to_run" preferred_useracct
Поскольку rc.local запускается после всех остальных процессов запуска, больше нет вопроса о том, какой уровень RC использовать. Ты можешь использовать экран -r myscreen присоединиться к вашему отстраненному экран процессы.
Моей отправной точкой будет rc.local.