資源使用限制(limit指令)
如果在你的使用環境中,有運用 C Shell 的內建指令 limit 來限制你的系統資源的使用時,對一項執行時間會較長的背景工作而言可能會比較不利。如果你想查詢資源使用限制可使用
C Shell 內建指令 limit,如下:
% limit
cputime 10:00
filesize unlimited
datasize 524280 kbytes
stacksize 8192 kbytes
coredumpsize unlimited
memoryuse unlimited
descriptors 64
這時你可清楚地看到各項系統資源的使用限制。如果你要取消某項限制,可用指令unlimit。譬如取消
CPU 的限制,方法如下:
% unlimit cputime
但如此運用會影響所有的 process,如果你只是要對放到背景中執行的工作單獨取消的話,你可用我們前面所提到的群體指令來執行該工作。如下例所示:
% ( unlimit cputime ; find / -nouser -ls
>& nouser.file) &
工作控制與退出的關係(指令nohup)
在正常情況下, C Shell 在系統中所執行的處理程序(process)會隨著 logout
而終止,這是因為 UNIX 系統會隨著 logout 送出 hangup 的訊號將你所有的 process 終止。但在背景工作則會隨著你使用的
UNIX 系統不同而有所差異。有些 UNIX 系統對於執行背景工作會主動以 nohup 的方式執行,它可讓背景工作不受 logout
的影響而終止執行。但如果你的系統是屬於不主動為你的背景工作加上nohup 的話,則你一但 logout 則背景工作一樣逃不過被
hangup 訊號終止的命運。當然你也不可能得到任何的結果了。這一點請特別特別注意,務必在下指令到背景內執行前搞清楚系統的特性。如果發現有必要自己手動的話,下指令的方式如下:
% nohup command &