Действительно ли необходимо отрицать процесс для него, чтобы продолжить бежать за разъединением?

Другая опция избежать тех предупреждающих сообщений состоит в том, чтобы выполниться x11vnc в псевдотерминале, созданном командой UNIX (см. Используя псевдотерминалы (имущество) для управления интерактивными программами). Это может быть, покончили script команда или инструменты такой как pdip ("Запрограммированный диалог с интерактивными программами").

Предупреждающие сообщения на Mac OS X 10.6.8 для того, чтобы не обеспечивать псевдотерминал для x11vnc:

# x11vnc 0.9.14
sudo x11vnc -storepasswd ~/.vnc/passwd << ENDDOC
password
password
y
ENDDOC

# Enter VNC password: stty: stdin isn't a terminal
#
# Verify password:    
# stty: stdin isn't a terminal
# Write password to ~/.vnc/passwd?  [y]/n Password written to: ~/.vnc/passwd

Решения с помощью script команда:

# GNU script command
sudo script -q -c 'x11vnc -storepasswd ~/.vnc/passwd' <

2
31.08.2018, 23:22
2 ответа

Процессы, фоном для которых служит bg или &, обычно погибают при 2-х сценариях:

  1. Оболочка получает SIGHUP
  2. Они пытаются записать на терминал, которого больше не существует.

Пункт #1 является основным виновником при закрытии вашего терминала. Однако, произойдет это или нет, зависит от того, как как вы закрываете свой терминал. Вы можете закрыть его с помощью:

  1. Что-то вроде нажатия на "X" в оконном менеджере
  2. Вы можете ввести exit, logout, или CTRL+D.

Item #1 - это тот, в результате которого будет отправлен SIGHUP. #2 нет.

Короче говоря, если вы подставляете процесс в фоновом режиме с помощью bg, а затем выходите из системы с помощью exit, logout, или CTRL+D, процесс не будет завершён.

.
4
27.01.2020, 21:57

При закрытии клеммы все процессы, использующие эту клемму (см. TTY в столбце ps -выход ), получают сигнал SIGHUP. Он обрабатывает, что делать на выходе SIGHUP. В классических униксах (AIX, Solaris) процесс по этому сигналу замкнут. Поэтому необходимо использовать disown. Из man bash:

По умолчанию оболочка выходит при получении SIGHUP. Перед выходом, интерактивная оболочка повторно посылает SIGHUP на все задания, запущенные или остановился. Остановленные задания отправляются СИГКОНТОМ, чтобы удостовериться, что они получили Вздох. Чтобы оболочка не посылала сигнал на конкретное рабочее место, оно должно быть удалено со стола рабочих мест при помощи кнопки Отключить встроенные (см. ниже) или помеченные как "нет". получить SIGHUP с помощью отключения -h.

1
27.01.2020, 21:57

Теги

Похожие вопросы