я использовал пинг
в гном-терминал
окно, и я могу подтвердить ваши наблюдения. Я думаю, что это проблематично, что процесс может оставаться запущенным без какой-либо связи. Я попытаюсь интерпретировать то, что я заметил (но я не утверждаю, что понимаю, почему, возможно, для того, чтобы программы с собственным графическим интерфейсом могли работать без нет
после выхода из бить
, при запуске в окне терминала).
Когда я выход
я выхожу из бить
работает в окне терминала и пинг
продолжает работать, но некуда писать.
Когда я убийство
процесс, я убиваю бить
процесс в окне терминала. Я не нашел явного гном-терминал
процесс убить, потому что процесс /usr/lib/гном-терминал/гном-терминал-сервер
управляет ими всеми. Я не уверен, что это то, что вы делали, но это то, что я предполагаю.
Когда я закрываю окно (кнопкой x), я выхожу из оконного процесса (что, в свою очередь, заставляет его дочерние процессы останавливаться, включая бить
и пинг
). Это очевидное отличие от двух предыдущих случаев.
Когда я делаю соответствующее упражнение с xterm
, будет отдельный процесс с именем xterm.
Когда я выход
я выхожу из бить
работает в окне терминала и пинг
продолжает работать, но некуда писать.
Когда я убийство
процесс, я убиваю xterm
процесс окна терминала (что, в свою очередь, заставляет его дочерние процессы останавливаться, включая бить
и пинг
).
Когда я закрываю окно (кнопкой x), я выхожу из оконного процесса (что, в свою очередь, заставляет его дочерние процессы останавливаться, включая бить
и пинг
).
Вы уже знаете, что можете использовать нет
(вместе с &
), если вы хотите, чтобы дочерний процесс продолжался после закрытия окна терминала, в котором был запущен дочерний процесс.
Редактировать 1: Заключительный комментарий:
От человек
Если команда завершается управляющим оператором &, оболочка
выполняет команду в фоновом режиме в подоболочке. Оболочка делает
не ждать завершения команды, а статус возврата равен 0.
Мы заметили, что нет сигнала для остановки подоболочки, и процесс запускается в/из этой подоболочки, когда бить
завершается, по крайней мере, не при запуске в окне терминала. Но окно вызывающего терминала закрыто. Я думаю, что после выхода из bash окно терминала больше не знает о подоболочке и процессе, запущенном в/из этой подоболочки, и поэтому не может их остановить.
Редактировать 2: я попросил помощи в Unix и Linux - Пожалуйста, прочитайте ответы.