Ps

什麼是'111+ 退出 1’ 響應是什麼意思?

  • September 2, 2019

我執行了這個命令來嘗試讓我的 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意思?

我怎樣才能在後台執行我的程序讓我正確退出?

當您&在 bash 中的命令末尾使用 時,它會在後台執行該命令。[1]+ Exit 1表示作業 1 以狀態 1 退出。中間的數字是[]作業號,後面的數字Exit是退出狀態。如果沒有顯示退出狀態,則表示命令以 status 退出0

在執行另一個命令之前您看不到這個的原因是因為預設情況下,在提示更新之前不會顯示已完成的後台命令的狀態。這意味著在另一個命令退出後,或者您只需按<ENTER>一個空提示。

編輯:

您也不需要使用nohup. 當 shell 本身接收到 HUP 時,Bash 只會 HUP 一個程序。exit如果您完全退出(通過或 CTRL+D),則不會發生這種情況。

但是,您也可以使用disown內置功能來製作它,這樣特定工作就不會獲得 HUP。

最後,您還可以設置一個 SIGHUP 處理程序,以在 shell 通過執行function sighup { disown -a; exit 0; }; trap sighup HUP.

引用自:https://unix.stackexchange.com/questions/69137