linux nohup不生成日志,linux重定向及nohup不输出的方法
FreeBSD可以同時(shí)運(yùn)行多個(gè)進(jìn)程,在shell下直接輸入命令后,shell將進(jìn)程放到前臺執(zhí)行。如果要將進(jìn)程放到后臺執(zhí)行,需要在命令行的結(jié)尾加上一個(gè) “&” 符號。下面的命令從后臺執(zhí)行,從ftp.isc.org下載文件。
$ fetch ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz &
當(dāng)程序已經(jīng)在前臺執(zhí)行的時(shí)候,可以使用^Z將這個(gè)程序掛起,暫停執(zhí)行。然后可以使用bg命令將這個(gè)掛起的程序放到后臺執(zhí)行,或者使用fg將某個(gè)在后臺或掛起的進(jìn)程放到前臺執(zhí)行。
當(dāng)在后臺運(yùn)行了程序的時(shí)候,可以用jobs命令來查看后臺作業(yè)的狀態(tài)。在有多個(gè)后臺程序時(shí),要使用來參數(shù)的fg命令將不同序號的后臺作業(yè)切換到前臺上運(yùn)行。
$ 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
在啟動了多個(gè)程序之后,可以使用ps命令來查看這些進(jìn)程及其狀態(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é)果包括進(jìn)程的標(biāo)識號PID,控制終端TT(p0表示控制終端為ttyp0),進(jìn)程的狀態(tài)STAT,進(jìn)程使用的處理器時(shí)間TIME和具體的命令。
可以給ps命令加上參數(shù),來獲得更多的輸出內(nèi)容,以下命令將輸出系統(tǒng)中所有的進(jìn)程:
$ 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)
當(dāng)用戶啟動一個(gè)進(jìn)程的時(shí)候,這個(gè)進(jìn)程是運(yùn)行在前臺,使用與相應(yīng)控制終端相聯(lián)系的標(biāo)準(zhǔn)輸入、輸出進(jìn)行輸入和輸出。即使將進(jìn)程的輸入輸出重定向,并將進(jìn)程放在后臺執(zhí)行,進(jìn)程仍然和當(dāng)前終端設(shè)備有關(guān)系。正因?yàn)槿绱?#xff0c;在當(dāng)前的登錄會話結(jié)束時(shí),控制終端設(shè)備將和登錄進(jìn)程相脫離,那么系統(tǒng)就向所有與這個(gè)終端相聯(lián)系的進(jìn)程發(fā)送SIGHUP的信號,通知進(jìn)程線路已經(jīng)掛起了,如果程序沒有接管這個(gè)信號的處理,那么缺省的反應(yīng)是進(jìn)程結(jié)束。因此普通的程序并不能真正脫離登錄會話而運(yùn)行進(jìn)程,為了使得在系統(tǒng)登錄后還可以正常執(zhí)行,只有使用命令nohup來啟動相應(yīng)程序。
從上面的ps的輸出結(jié)果可以看出,有些程序沒有控制終端,這些程序通常是一些后臺進(jìn)程。使用命令nohup當(dāng)然可以啟動這樣的程序,但nohup啟動的程序在進(jìn)程執(zhí)行完畢就退出,而常見的一些服務(wù)進(jìn)程通常永久的運(yùn)行在后臺,不向屏幕輸出結(jié)果。在Unix中這些永久的后臺進(jìn)程稱為守護(hù)進(jìn)程(daemon)。守護(hù)進(jìn)程通常從系統(tǒng)啟動時(shí)自動開始執(zhí)行,系統(tǒng)關(guān)閉時(shí)才停止。如果偶然某個(gè)守護(hù)進(jìn)程消失了,那么它提供的服務(wù)將不再能被使用。
在守護(hù)進(jìn)程中,最重要的一個(gè)是超級守護(hù)進(jìn)程inetd,這個(gè)進(jìn)程接管了大部分網(wǎng)絡(luò)服務(wù),但并不是對每個(gè)服務(wù)都自己進(jìn)行處理,而是依據(jù)連接請求,啟動不同的服務(wù)程序與客戶機(jī)打交道。inetd支持網(wǎng)絡(luò)服務(wù)種類在它的設(shè)置文件/etc/inet.conf中定義。inet.conf文件中的每一行就對應(yīng)一個(gè)端口地址,當(dāng)inetd接受到連接這個(gè)端口的連接請求時(shí),就啟動相應(yīng)的進(jìn)程進(jìn)行處理。使用inetd的好處是系統(tǒng)不必啟動很多守護(hù)進(jìn)程,從而節(jié)約了系統(tǒng)資源,然而使用inetd啟動守護(hù)進(jìn)程相應(yīng)反應(yīng)會遲緩一些,不適合用于被密集訪問的服務(wù)進(jìn)程
總結(jié)
以上是生活随笔為你收集整理的linux nohup不生成日志,linux重定向及nohup不输出的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python多线程框架_基于python
- 下一篇: linux 声明消息函数,linux消息