我使用下面的命令Unix的後臺進程異常停止
nohup perl myPerlSCript.pl >debug_log &
幾分鐘後執行在背景上的perl腳本我得到的狀態作爲
[1] +停止
我沒想到會停下來,也不知道是什麼阻止了它。我怎樣才能調試這個並找出它爲什麼停止?我實際上很想知道要調試的unix命令。
我使用下面的命令Unix的後臺進程異常停止
nohup perl myPerlSCript.pl >debug_log &
幾分鐘後執行在背景上的perl腳本我得到的狀態作爲
[1] +停止
我沒想到會停下來,也不知道是什麼阻止了它。我怎樣才能調試這個並找出它爲什麼停止?我實際上很想知道要調試的unix命令。
你是否在使用tcsh? Tcsh實際上帶有一個內置的nohup命令,我以前遇到過很多問題,看到了您所看到的確切行爲。
如果是這種情況,請直接嘗試使用/usr/bin/nohup
。
有幾種方法可以停止在後臺運行的進程。所有這些都涉及這些信號之一:
SIGSTOP
SIGTSTP
SIGTTOU
SIGTTIN
SIGSTOP
嚴重。它不可阻擋,不可取消,難以處理。它會像SIGKILL
一樣會終止進程。其他人可以通過後臺進程處理以防止停止。
kill(2)
使用raise(3)
或kill(2)
tostop
使能(見的stty -a
輸出的信號被髮送,或)。這會生成SIGTTOU
。tcsetattr(3)
或等效的ioctl
更改終端模式。 (這些模式與stty
所示的模式相同。)無論tostop
標誌的當前狀態如何,都會生成SIGTTOU
。SIGTTIN
。該列表可能非常不完整。
謝謝 - 是否有可能看到哪些信號至少導致了[[1] + Stopped]? – Rup
在zsh而不是bash中運行它,它會給你一個更詳細的消息。 bash爲所有4個打印「停止」。 –
不,我不使用tcsh。這是bash。 – user703555