nohup завершается, когда я закрываю SSH-терминал, и не отображается в ps/job во время работы

В ~/.bashrc поместите строку:

alias yarn="yarnpkg"
0
25.11.2020, 22:28
1 ответ

jobsможет показать вам задания только текущей оболочки.

Barepsпоказывает процессы с тем же эффективным идентификатором пользователя, что и текущий пользователь, и тем же управляющим терминалом, что и вызывающая сторона . Вам нужно, например. ps -eчтобы увидеть другие процессы(не обязательно все процессы в ОС, хотя).

Если вы запустите

nohup something … &

, тогда вы сможете запускать jobsили psв той же оболочке. Не ожидайте увидеть nohup. Его задача состоит в том, чтобы запустить somethingопределенным образом, он не должен длиться долго. Ожидайте увидеть something.

Так что, возможно, ваш процесс выжил, а вы только предположили, что он умер. Или, может быть, он действительно умер. См.Почему процесс был убит с помощью nohup?В ответе упоминаются две возможности:

  • KillUserProcesses=yesвlogind.conf(systemd );
  • или порожденный процесс реализует свой собственный обработчик для SIGHUP, который отменяет защиту nohup.

Подробнее здесь:Разница между nohup, disownи&. Если я правильно понимаю, disownможет помочь, если порожденный процесс реализует собственный обработчик для SIGHUP.Используйте это так:

nohup something … &
disown
2
18.03.2021, 22:47

Теги

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