小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

簡單而有用的nohup命令

 pengx 2008-09-11

簡單而有用的nohup命令在UNIX/LINUX中,普通進程用&符號放到后臺運行,如果啟動該程序的控制臺logout,則該進程隨即終止。


要實現(xiàn)守護進程,一種方法是按守護進程的規(guī)則去編程(本站有文章介紹過),比較麻煩;另一種方法是仍然用普通方法編程,然后用nohup命令啟動程序:
nohup <程序名> &
則控制臺logout后,進程仍然繼續(xù)運行,起到守護進程的作用(雖然它不是嚴格意義上的守護進程)。
使用nohup命令后,原程序的的標準輸出被自動改向到當前目錄下的nohup.out文件,起到了log的作用,實現(xiàn)了完整的守護進程功能。

ygwu @ 2005年04月18日 上午10:03

For example:
如何遠程啟動WebLogic服務(wù)?

用telnet遠程控制服務(wù)器,遠程啟動WEBLOGIC服務(wù),啟動后關(guān)閉telnet,WebLogic服務(wù)也跟著停止,這是因為使用telnet啟動的進程會隨著telnet進程的關(guān)閉而關(guān)閉。所以我們可以使用一些UNIX下的命令來做到不關(guān)閉。

使用如下命令:

nohup startWeblogic.sh&

如果想要監(jiān)控標準輸出可以使用:

tail -f nohup.out


訪客留言

FreeBSD可以同時運行多個進程,在shell下直接輸入命令后,shell將進程放到前臺執(zhí)行。如果要將進程放到后臺執(zhí)行,需要在命令行的結(jié)尾加上一個 “&” 符號。下面的命令從后臺執(zhí)行,從ftp.isc.org下載文件。

$ fetch ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz &

當程序已經(jīng)在前臺執(zhí)行的時候,可以使用^Z將這個程序掛起,暫停執(zhí)行。然后可以使用bg命令將這個掛起的程序放到后臺執(zhí)行,或者使用fg將某個在后臺或掛起的進程放到前臺執(zhí)行。

當在后臺運行了程序的時候,可以用jobs命令來查看后臺作業(yè)的狀態(tài)。在有多個后臺程序時,要使用來參數(shù)的fg命令將不同序號的后臺作業(yè)切換到前臺上運行。

$ jobs

[1]+ Running fetch ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz &

$ fg %1

fetch ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz

在啟動了多個程序之后,可以使用ps命令來查看這些進程及其狀態(tài)。

$ ps

PID TT STAT TIME COMMAND

501 p2 Ss 0:00.24 -bash (bash)

988 p2 R+ 0:00.00 ps

765 p3 Is+ 0:00.28 -bash (bash)

230 v0 Is+ 0:00.14 -bash (bash)

顯示的結(jié)果包括進程的標識號PID,控制終端TT(p0表示控制終端為ttyp0),進程的狀態(tài)STAT,進程使用的處理器時間TIME和具體的命令。

可以給ps命令加上參數(shù),來獲得更多的輸出內(nèi)容,以下命令將輸出系統(tǒng)中所有的進程:

$ ps waux

USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND

wb 989 0.0 0.4 400 236 p2 R+ 5:48PM 0:00.00 ps -aux

root 1 0.0 0.1 496 72 ?? Is 10:12PM 0:00.02 /sbin/init --

root 2 0.0 0.0 0 0 ?? DL 10:12PM 0:07.05 (pagedaemon)

root 3 0.0 0.0 0 0 ?? DL 10:12PM 0:00.20 (vmdaemon)

root 4 0.0 0.0 0 0 ?? DL 10:12PM 0:04.27 (syncer)

root 27 0.0 0.0 204 0 ?? IWs - 0:00.00 (adjkerntz)

root 91 0.0 0.5 820 328 ?? Is 2:12PM 0:00.82 syslogd

daemon 100 0.0 0.0 792 0 ?? IWs - 0:00.00 (portmap)

root 131 0.0 0.3 864 164 ?? Is 2:12PM 0:00.06 inetd

root 134 0.0 0.3 980 192 ?? Is 2:12PM 0:00.11 cron

root 138 0.0 0.6 1252 380 ?? Is 2:12PM 0:00.11 sendmail: accepti

wb 230 0.0 1.1 1540 668 v0 Is+ 2:12PM 0:00.14 -bash (bash)

root 231 0.0 0.0 824 0 v1 IWs+ - 0:00.00 (getty)

root 232 0.0 0.0 824 0 v2 IWs+ - 0:00.00 (getty)

root 500 0.0 0.9 876 524 ?? Ss 4:19PM 0:01.78 telnetd

wb 501 0.0 1.4 1540 888 p2 Ss 4:19PM 0:00.24 -bash (bash)

root 698 0.0 1.5 1644 900 ?? Is 4:49PM 0:00.02 /usr/local/sbin/s

root 700 0.0 1.2 1308 748 ?? Ss 4:49PM 0:00.22 /usr/local/sbin/n

root 702 0.0 3.4 2900 2112 ?? S 4:49PM 0:00.32 /usr/local/sbin/s

root 764 0.0 0.9 880 540 ?? Is 5:10PM 0:00.22 telnetd

wb 765 0.0 1.7 1536 1052 p3 Is+ 5:10PM 0:00.28 -bash (bash)

root 0 0.0 0.0 0 0 ?? DLs 10:12PM 0:00.02 (swapper)

當用戶啟動一個進程的時候,這個進程是運行在前臺,使用與相應(yīng)控制終端相聯(lián)系的標準輸入、輸出進行輸入和輸出。即使將進程的輸入輸出重定向,并將進程放在后臺執(zhí)行,進程仍然和當前終端設(shè)備有關(guān)系。正因為如此,在當前的登錄會話結(jié)束時,控制終端設(shè)備將和登錄進程相脫離,那么系統(tǒng)就向所有與這個終端相聯(lián)系的進程發(fā)送SIGHUP的信號,通知進程線路已經(jīng)掛起了,如果程序沒有接管這個信號的處理,那么缺省的反應(yīng)是進程結(jié)束。因此普通的程序并不能真正脫離登錄會話而運行進程,為了使得在系統(tǒng)登錄后還可以正常執(zhí)行,只有使用命令nohup來啟動相應(yīng)程序。

從上面的ps的輸出結(jié)果可以看出,有些程序沒有控制終端,這些程序通常是一些后臺進程。使用命令nohup當然可以啟動這樣的程序,但nohup啟動的程序在進程執(zhí)行完畢就退出,而常見的一些服務(wù)進程通常永久的運行在后臺,不向屏幕輸出結(jié)果。在Unix中這些永久的后臺進程稱為守護進程(daemon)。守護進程通常從系統(tǒng)啟動時自動開始執(zhí)行,系統(tǒng)關(guān)閉時才停止。如果偶然某個守護進程消失了,那么它提供的服務(wù)將不再能被使用。

在守護進程中,最重要的一個是超級守護進程inetd,這個進程接管了大部分網(wǎng)絡(luò)服務(wù),但并不是對每個服務(wù)都自己進行處理,而是依據(jù)連接請求,啟動不同的服務(wù)程序與客戶機打交道。inetd支持網(wǎng)絡(luò)服務(wù)種類在它的設(shè)置文件/etc/inet.conf中定義。inet.conf文件中的每一行就對應(yīng)一個端口地址,當inetd接受到連接這個端口的連接請求時,就啟動相應(yīng)的進程進行處理。使用inetd的好處是系統(tǒng)不必啟動很多守護進程,從而節(jié)約了系統(tǒng)資源,然而使用inetd啟動守護進程相應(yīng)反應(yīng)會遲緩一些,不適合用于被密集訪問的服務(wù)進程

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多