Что означает ответ « + выход 1»?

Я запустил эту команду, чтобы попытаться запустить мою программу python в фоновом режиме и позволить мне выйти из SSH-соединения, которое я использую:

nohup python files.py >> files.log & 

Затем я проверяю ps чтобы проверить, работает ли он

 $ ps a PID TTY STAT TIME COMMAND 13059 pts/0 Ss 0:00 -bash 13327 pts/0 R+ 0:00 ps a [1]+ Exit 1 nohup python files.py >> files.log 

Что означает это [1]+ Exit 1 ?

И как я могу запустить свою программу в фоновом режиме, позволяя мне правильно выйти?

2 Solutions collect form web for “Что означает ответ « + выход 1»?”

Когда вы используете команду & в конце команды в bash, она запускает команду в фоновом режиме. [1]+ Exit 1 означает, что задание 1 вышло со статусом 1. Число между [] – это номер задания, а число после Exit – это статус выхода. Если статус выхода не отображается, это означает, что команда вышла со статусом 0 .

Причина, по которой вы не видите этого, пока не выполняете другую команду, заключается в том, что по умолчанию статус завершенной фоновой команды не показывается до тех пор, пока не будет обновлена ​​подсказка. Это означает, что после выхода другой команды или просто нажмите <ENTER> в пустой строке.

Отредактировано:
Вам также не нужно использовать nohup . Bash будет только HUP процессом, когда сама оболочка получит HUP. Этого не происходит, если вы выходите чисто (через exit или CTRL + D).
Однако вы также можете использовать встроенный редактор, чтобы сделать так, чтобы определенные задания не получали HUP.
Наконец, вы также можете настроить обработчик SIGHUP, чтобы отключить все задания, когда оболочка получает HUP, выполняя function sighup { disown -a; exit 0; }; trap sighup HUP function sighup { disown -a; exit 0; }; trap sighup HUP function sighup { disown -a; exit 0; }; trap sighup HUP .

Ответ Патрика верен, хотя точка Стефана о nohup важна для пользователей с разными версиями. Однако значение символа + (плюс) не было дано. Здесь он указывает, что это «текущая» работа. Например, если бы я сразу представил 3 команды:

 $ sleep 5& [1] 29056 $ sleep 5& [2] 29091 $ sleep 5& [3] 29147 

Затем подождите 5 секунд и нажмите «Возврат», выход:

 [1] Done sleep 5 [2]- Done sleep 5 [3]+ Done sleep 5 

Как объяснил Патрик, число между квадратными скобками – это порядковый номер задания. + Задан только для последней работы, а – задан для предшествующей ему работы. У всех других заданий нет никаких обозначений.

  • Может кто-нибудь объяснить это странное поведение ПП?
  • Как распечатать имя процесса рядом с идентификационным номером процесса в файле?
  • Как убить весь процесс с заданным именем?
  • Почему процессы не заполняют пустые идентификаторы процессов
  • Как узнать имена потоков, которые выполняются на конкретном ядре
  • Как знает ps, чтобы скрыть пароли?
  • Почему apache2 обнаруживает несуществующий список процессов?
  • Как получить pid для последнего фонового приложения
  • -p вариант ps
  • Показывать только запущенные процессы - * не * потоки
  • Предел HP-UX SZ для ps?
  • Linux и Unix - лучшая ОС в мире.