Что означает ответ « + выход 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 для длительных процессов
  • Отсутствие пробела в выводе `ps` около EOL
  • Как ps получает исполняемый файл от процессов других пользователей?
  • Почему мой Linux-сервер зависает с "ps aux"
  • Перечислите процессы суперпользователя
  • Конвертировать PDF из цветового пространства sRGB в CMYK
  • top / ps / mpstat, показывающий разный выход
  • Почему я не могу использовать весь 100% -ный потенциал процессора?
  • Элегантный список детских процессов
  • ps aux: zero VSZ
  • Функция второго grep в `ps | grep -v | grep`
  • Linux и Unix - лучшая ОС в мире.