背景執行 |
2006/05/24 ~ 阿亮 ~ |
今天 mswu 問到程式執行後,要怎樣再丟到背景去執行,熊告訴我用
先用 Ctrl-Z 加以 Suspend 程式,再執行 bg 即可
但 mswu 說在 AIX 下用此法仍會有程序不見的情形。查看這裡 說有一些限制,
- 必需此程序是沒有 terminal output/input。
- The /usr/bin/bg command does not work when operating in its own command execution environment, because that environment does not have suspended jobs to manipulate. This would be the case in the following example:
- Command | xargs bg
- PS. 就是不能用 | xargs bg 達到 bg 的目的,它說因為執行這個 command 時,目前的 shell 並無 suspended 的程式。意思就是不能用 pipe 到 bg 來執行。
- Each /usr/bin/bg command operates in a different environment and does not share the parent shell’s understanding of jobs. For this reason, the bg command is implemented as a Korn shell or POSIX shell regular built-in.
- 照字面看是指 bg 執行後,是另開一個 shell 而不是在目前的 shell 環境執行,而且不繼承原來的環境變數。
針對第一點,熊堅持在 AIX 下,Ctrl-Z + bg 沒問題,但 mswu 說有問題哩~~ 放著,目前 mswu 就放著 terminal 讓它跑,因為萬一中斷,重新跑又要跑很久。
一般的背景執行, 有的作業系統用下面的方式,會有問題
command &
所以,一般若要背景執行,我都會搭配 nohup,比如
nohup command &
但 mswu 又說像下面這樣加括號,就沒問題???
( command & )
先記著,等有機會再證實吧 ^^