九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
UNIX進(jìn)程組,會(huì)話和作業(yè)控制

 

1. 進(jìn)程組、會(huì)話與終端

(1).每個(gè)進(jìn)程都屬于一個(gè)進(jìn)程組。進(jìn)程組是一個(gè)或多個(gè)進(jìn)程的集合,通常它們與一組作業(yè)相關(guān)聯(lián),可以接受來自同一終端的各種信號(hào)。每個(gè)進(jìn)程組都有唯一的進(jìn)程組ID(整數(shù),也可以存放在pid_t類型中)。

    #include <unistd.h>

    pid_t getpgrp(void);

        //返回值;調(diào)用進(jìn)程的進(jìn)程組ID

    每個(gè)進(jìn)程組都有一個(gè)組長進(jìn)程,組長進(jìn)程的標(biāo)識(shí)是進(jìn)程組ID等于其進(jìn)程ID。組長進(jìn)程可以創(chuàng)建一個(gè)進(jìn)程組、創(chuàng)建該組中的進(jìn)程。只有某個(gè)進(jìn)程中有一個(gè)進(jìn)程存在,則該進(jìn)程就存在,與組長進(jìn)程是否終止無關(guān)。從進(jìn)程組創(chuàng)建開始到其中最后一個(gè)進(jìn)程離開為止的時(shí)間區(qū)間成為進(jìn)程組的生存期。進(jìn)程組中最后一個(gè)進(jìn)程可以終止或者轉(zhuǎn)移到另一個(gè)進(jìn)程組中。

    進(jìn)程調(diào)用setpgid(setsid也可以)可以參加一個(gè)現(xiàn)存的組或者創(chuàng)建一個(gè)新進(jìn)程組

    #include <sys/types.h>

    #include <unistd.h>

    int setpgid(pid_t pid, pid_t pgid);

        //返回:若成功則為0,出錯(cuò)為-1

    這將pid進(jìn)程的進(jìn)程組ID設(shè)置為pgid。如果pid是0,則使用調(diào)用者的進(jìn)程ID。另外,如果pgid是0,則由pid指定的進(jìn)程ID被用作為進(jìn)程組ID。如果這兩個(gè)參數(shù)相等,則由pid指定的進(jìn)程變成進(jìn)程組組長。

    一個(gè)進(jìn)程只能為它自己或它的子進(jìn)程設(shè)置進(jìn)程組I D。在它的子進(jìn)程調(diào)用了exec后,它就不再能改變該子進(jìn)程的進(jìn)程組I D。

    在大多數(shù)作業(yè)控制shell中,在fork之后調(diào)用此函數(shù),使父進(jìn)程設(shè)置其子進(jìn)程的進(jìn)程組ID,然后使子進(jìn)程設(shè)置其自己的進(jìn)程組ID。這些調(diào)用中有一個(gè)是冗余的,但這樣做可以保證父、子進(jìn)程在進(jìn)一步操作之前,子進(jìn)程都進(jìn)入了該進(jìn)程組。否則依賴于哪一個(gè)進(jìn)程先執(zhí)行,就產(chǎn)生一個(gè)競態(tài)條件。

(2).session是一個(gè)或多個(gè)進(jìn)程組的集合。

 

    例如,在shell中:

    $proc1 | proc2 &

    $proc3 | proc4 

那么此時(shí),session中就會(huì)有三個(gè)進(jìn)程組存在,分別是{登陸shell(session leader)},{proc1, proc2}, {proc3, proc4}。   

    進(jìn)程調(diào)用setsid函數(shù)就可建立一個(gè)新對話期。

    #include <sys/types.h>

    #include <unistd.h>

    pid_t setsid(void);

    如果調(diào)用此函數(shù)的進(jìn)程不是一個(gè)進(jìn)程組的組長,則此函數(shù)創(chuàng)建一個(gè)新對話期,結(jié)果為:

(a) 此進(jìn)程變成該新對話期的對話期首進(jìn)程(session leader,對話期首進(jìn)程是創(chuàng)建該對話期的進(jìn)程)。此進(jìn)程是該新對話期中的唯一進(jìn)程。

(b) 此進(jìn)程成為一個(gè)新進(jìn)程組的組長進(jìn)程。新進(jìn)程組ID是此調(diào)用進(jìn)程的進(jìn)程ID。

(c) 此進(jìn)程沒有控制終端。如果在調(diào)用setsid之前此進(jìn)程有一個(gè)控制終端,那么這種聯(lián)系也被解除。

    如果此調(diào)用進(jìn)程已經(jīng)是一個(gè)進(jìn)程組的組長,則此函數(shù)返回出錯(cuò)。為了保證不處于這種情況,通常先調(diào)用fork,然后使其父進(jìn)程終止,而子進(jìn)程則繼續(xù)。因?yàn)樽舆M(jìn)程繼承了父進(jìn)程的進(jìn)程組ID,而其進(jìn)程ID則是新分配的,兩者不可能相等,所以這就保證了子進(jìn)程不是一個(gè)進(jìn)程組的組長。

    對話期和進(jìn)程組有一些其他特性:

    ? 一個(gè)對話期可以有一個(gè)單獨(dú)的控制終端(controlling terminal)。這通常是我們在其上登錄的終端設(shè)備(終端登錄情況)或偽終端設(shè)備(網(wǎng)絡(luò)登錄情況)。

    ? 建立與控制終端連接的對話期首進(jìn)程,被稱之為控制進(jìn)程(controlling process)。

    ? 一個(gè)對話期中的幾個(gè)進(jìn)程組可被分成一個(gè)前臺(tái)進(jìn)程組(foreground process group)以及一個(gè)或幾個(gè)后臺(tái)進(jìn)程組(background process group)。前臺(tái)進(jìn)程組接受終端輸入信號(hào)。Shell中的作業(yè)控制就是對前后臺(tái)進(jìn)程組的控制,&或Ctrl+Z的進(jìn)程組就是后臺(tái)進(jìn)程組。

    ? 如果一個(gè)對話期有一個(gè)控制終端,則它有一個(gè)前臺(tái)進(jìn)程組,其他進(jìn)程組則為后臺(tái)進(jìn)程組。

    ? 無論何時(shí)鍵入中斷鍵(常常是DELETE或Ctrl-C)或退出鍵(常常是Ctrl-\),就會(huì)造成將中斷信號(hào)或退出信號(hào)送至前臺(tái)進(jìn)程組的所有進(jìn)程。

    ? 終端的掛斷信號(hào)送至控制進(jìn)程(對話期首進(jìn)程。)

    ? 系統(tǒng)在登陸時(shí)將自動(dòng)建立控制終端。

    如何分配一個(gè)控制終端依賴于實(shí)現(xiàn)。在open時(shí),有幾個(gè)和控制終端相關(guān)的選項(xiàng):O_NOCTTY 如果要打開的文件為終端機(jī)設(shè)備時(shí),則不會(huì)將該終端當(dāng)成進(jìn)程控制終端。

    有時(shí)不管標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出是否重新定向,程序都要與控制終端交互作用。保證程序讀寫控制終端的方法是打開文件/dev/tty,在內(nèi)核中,此特殊文件代表控制終端。如果程序沒有控制終端,則打開此設(shè)備將失敗。

    注意:控制終端只有一個(gè),通??刂平K端/dev/tty代表當(dāng)前shell的控制終端,其實(shí)是一個(gè)指向?qū)嶋H終端設(shè)備的連接。實(shí)際的終端設(shè)備可能是tty1,ttyS1或者pst/1.

(3).控制終端與終端

    首先介紹兩個(gè)抽象概念:

    tty(終端設(shè)備的統(tǒng)稱):tty一詞源于Teletypes,或者teletypewriters,原來指的是電傳打字機(jī),是通過串行線用打印機(jī)鍵盤通過閱讀和發(fā)送信息的東西,后來這東西被鍵盤與顯示器取代,所以現(xiàn)在叫終端比較合適。終端是一種字符型設(shè)備,它有多種類型,通常使用tty來簡稱各種類型的終端設(shè)備。

    pty(偽終端,虛擬終端):遠(yuǎn)程telnet到主機(jī)或使用xterm時(shí)不也需要一個(gè)終端交互。

    在Linux系統(tǒng)的設(shè)備特殊文件目錄/dev/下,終端特殊設(shè)備文件一般有以下幾種:

  1、串行端口終端(/dev/ttySn) 串行端口終端(Serial Port Terminal)是使用計(jì)算機(jī)串行端口連接的終端設(shè)備。計(jì)算機(jī)把每個(gè)串行端口都看作是一個(gè)字符設(shè)備。有段時(shí)間這些串行端口設(shè)備通常被稱為終端設(shè)備,因?yàn)槟菚r(shí)它的最大用途就是用來連接終端。

   2、偽終端(/dev/pty/) 偽終端(Pseudo Terminal)是成對的邏輯終端設(shè)備(即master和slave設(shè)備, 對master的操作會(huì)反映到slave上)。例如/dev/ptyp3和/dev/ttyp3(或者在設(shè)備文件系統(tǒng)中分別是/dev/pty /m3和/dev/pty/s3)。它們與實(shí)際物理設(shè)備并不直接相關(guān)。如果一個(gè)程序把ptyp3(master設(shè)備)看作是一個(gè)串行端口設(shè)備,則它對該端口的讀/ 寫操作會(huì)反映在該邏輯終端設(shè)備對應(yīng)的另一個(gè)ttyp3(slave設(shè)備)上面。而ttyp3則是另一個(gè)程序用于讀寫操作的邏輯設(shè)備。telnet主機(jī)A就是通過“偽終端”與主機(jī)A的登錄程序進(jìn)行通信。

    3、控制終端(/dev/tty) 如果當(dāng)前進(jìn)程有控制終端(Controlling Terminal)的話,那么/dev/tty就是當(dāng)前進(jìn)程的控制終端的設(shè)備特殊文件。可以使用命令”ps –ax”來查看進(jìn)程與哪個(gè)控制終端相連。對于你登錄的shell,/dev/tty是你當(dāng)前的控制終端,設(shè)備號(hào)是(5,0)。使用命令”tty”可以查看它具體對應(yīng)哪個(gè)實(shí)際終端設(shè)備。/dev/tty有些類似于到實(shí)際所使用終端設(shè)備的一個(gè)聯(lián)接。在當(dāng)前的控制終端的讀寫都會(huì)寫到當(dāng)前的終端設(shè)備中,例如echo "hello" > /dev/tty ,都會(huì)直接顯示在當(dāng)前的終端中。而cat </dev/tty會(huì)從當(dāng)前終端讀取輸入(行緩沖)并輸出出來。

    4、控制臺(tái)終端(/dev/ttyn, /dev/console) 在Linux 系統(tǒng)中,計(jì)算機(jī)顯示器通常被稱為控制臺(tái)終端(Console)。它仿真了類型為Linux的一種終端(TERM=Linux),并且有一些設(shè)備特殊文件與之相關(guān)聯(lián):tty0、tty1、tty2 等。當(dāng)你在控制臺(tái)上登錄時(shí),使用的是tty1。使用Alt+[F1—F6]組合鍵時(shí),我們就可以切換到tty2、tty3等上面去。tty1–tty6等稱為虛擬終端,而tty0則是當(dāng)前所使用虛擬終端的一個(gè)別名,系統(tǒng)所產(chǎn)生的信息會(huì)發(fā)送到該終端上(這時(shí)也叫控制臺(tái)終端)。因此不管當(dāng)前正在使用哪個(gè)虛擬終端,系統(tǒng)信息都會(huì)發(fā)送到控制臺(tái)終端上。/dev/console即控制臺(tái),是與操作系統(tǒng)交互的設(shè)備,系統(tǒng)將一些信息直接輸出到控制臺(tái)上。目前只有在單用戶模式下,才允許用戶登錄控制臺(tái)。

    5、虛擬終端(/dev/pts/n)在Xwindows模式下的偽終端.如我在Kubuntu下用konsole,就是用的虛擬終端,用tty命令可看到/dev/pts/1。

    6、其它類型Linux系統(tǒng)中還針對很多不同的字符設(shè)備存在有很多其它種類的終端設(shè)備特殊文件。例如針對ISDN設(shè)備的/dev/ttyIn終端設(shè)備等。

    

(4).幾個(gè)常用的終端相關(guān)命令

(a). 在ubuntu等發(fā)行版本中,圖形界面下Ctrl+Alt+F1-F6是打開tty1-6的終端()。在tty1-6這些終端下Alt1-6是切換終端,Alt+F7進(jìn)入圖形界面。

 

(b). 可以通過ps -t的方式查看其他終端進(jìn)程(這些終端在初始進(jìn)入時(shí)候?qū)儆趃etty狀態(tài),由于tty1終端尚未登錄所以運(yùn)行g(shù)etty。而且沒有其他進(jìn)程使用tty1終端):

    $ps -t tty1

    PID TTY          TIME CMD

    1524 tty1     00:00:00 getty

 

(c). 可以使用shell的tty命令來識(shí)別現(xiàn)在使用的終端:

    $ tty

    /dev/pts/0

 

(d). stty - set tty, change and print terminal line settings

$stty -a    命令用于檢查和修改當(dāng)前控制終端的通信參數(shù)。UNIX系統(tǒng)為鍵盤的輸入和終端的輸出提供了重要的控制手段,可以通過stty命令對特定終端或通信線路設(shè)置選項(xiàng).

$stty tostop        #[-]tostop  STOP嘗試向終端寫入數(shù)據(jù)的后臺(tái)任務(wù)。(SIGTTOU)

$echo "hello world" &   #試圖輸出的進(jìn)程會(huì)被終止

[1] 3063

$ fg

echo "hello world"

hello world

 

$ stty -tostop

$ echo "hello world" &

[1] 3065

hello world     #不STOP結(jié)果直接被輸出出來。

$ jobs

[1]+  完成                 echo "hello world"

所有選項(xiàng),-option_name是關(guān)閉,option_name是打開。對于控制終端的設(shè)置也是管理中重要的工作之一。

 

(4).需要有一種方法來通知內(nèi)核哪一個(gè)進(jìn)程組是前臺(tái)進(jìn)程組,這樣,終端設(shè)備驅(qū)動(dòng)程序就能了解將終端輸入和終端產(chǎn)生的信號(hào)送到何處。

    #include <termios.h>

    #include <unistd.h>

    int tcgetattr(int fd, struct termios *termios_p);   //成功則返回與終端文件描述符fd相關(guān)聯(lián)的前臺(tái)進(jìn)程的組ID,出錯(cuò)則返回-1。

    int tcsetattr(int fd, int optional_actions, const struct termios *termios_p);   //成功則返回0,出錯(cuò)則返回-1

    //struct termios定義一和終端相關(guān)的標(biāo)識(shí)字段,例忽略BREAK鍵,忽略校驗(yàn)等等。

    大多數(shù)應(yīng)用程序不直接調(diào)用這兩個(gè)函數(shù),它們通常由作業(yè)控制shell調(diào)用。

 

 

2. 作業(yè)控制

(1).允許在一個(gè)終端上起動(dòng)多個(gè)作業(yè)(進(jìn)程組),控制哪一個(gè)作業(yè)可以存取該終端,以及哪些作業(yè)在后臺(tái)運(yùn)行。作業(yè)控制要求三種形式的支持:

(a).支持作業(yè)控制的shell。

(b).內(nèi)核中的終端驅(qū)動(dòng)程序必須支持作業(yè)控制。

(c).必須提供對某些作業(yè)控制信號(hào)的支持。

三個(gè)特殊字符可使終端驅(qū)動(dòng)程序產(chǎn)生信號(hào),并將它們送至前臺(tái)進(jìn)程組,它們是:

? 中斷字符(一般采用DELETE或Ctrl-C)產(chǎn)生SIGINT。

? 退出字符(一般采用Ctrl-\)產(chǎn)生SIGQUIT。

? 掛起字符(一般采用Ctrl-Z)產(chǎn)生SIGTSTP。

(2).不支持作業(yè)控制的Shell

    對于不支持作業(yè)控制的Shell,例如bsh,它的命令和它自身的進(jìn)程處于同一個(gè)會(huì)話和前臺(tái)進(jìn)程組。在后臺(tái)執(zhí)行的命令(&)和管道命令的進(jìn)程依然和Shell是同一個(gè)進(jìn)程組。

    如果一個(gè)后臺(tái)進(jìn)程試圖取走終端,例如cat > temp &。在有作業(yè)控制時(shí),后臺(tái)作業(yè)被放在后臺(tái)進(jìn)程組中。如果后臺(tái)作業(yè)試土讀控制終端,則會(huì)產(chǎn)生信號(hào)SIGTTIN。在沒有作業(yè)控制時(shí),其處理方法是如果該進(jìn)程自己沒有重定向標(biāo)準(zhǔn)輸入,則Shell會(huì)自動(dòng)將標(biāo)準(zhǔn)輸入重定向到/dev/null。讀/dev/null則會(huì)產(chǎn)生一個(gè)EOF讓cat讀到文件末尾,正常結(jié)束。另外,管道執(zhí)行的結(jié)構(gòu)圖如下:

<圖>

(3).支持作業(yè)控制的Shell

$ ps -o pid -o ppid -o sid -o pgid -o command

  PID  PPID   SID  PGID COMMAND

 2074  2068  2074  2074 /bin/bash

 2580  2074  2074  2580 ps -o pid -o ppid -o sid -o pgid -o command

可以看出它們有不同的PGID。對于管道命令,他們屬于同一個(gè)進(jìn)程組:

$ ps -o pid -o ppid -o sid -o pgid -o command | cat

  PID  PPID   SID  PGID COMMAND

 2074  2068  2074  2074 /bin/bash

 2584  2074  2074  2584 ps -o pid -o ppid -o sid -o pgid -o command

 2585  2074  2074  2584 cat

(4).SIGHUP信號(hào)

    SIGHUP會(huì)在以下3種情況下被發(fā)送給相應(yīng)的進(jìn)程:

1、終端關(guān)閉時(shí),該信號(hào)被發(fā)送到session首進(jìn)程以及作為job提交的進(jìn)程(即用& 符號(hào)提交的進(jìn)程)

2、session首進(jìn)程退出時(shí),該信號(hào)被發(fā)送到該session中的前臺(tái)進(jìn)程組中的每一個(gè)進(jìn)程

3、若父進(jìn)程退出導(dǎo)致進(jìn)程組成為孤兒進(jìn)程組,且該進(jìn)程組中有進(jìn)程處于停止?fàn)顟B(tài)(收到SIGTSTP信號(hào)),SIGHUP會(huì)被發(fā)送到該進(jìn)程組中的每一個(gè)進(jìn)程。

    系統(tǒng)對SIGHUP信號(hào)的默認(rèn)處理是終止收到該信號(hào)的進(jìn)程。所以若程序中沒有捕捉該信號(hào),當(dāng)收到該信號(hào)時(shí),進(jìn)程就會(huì)退出。

    If a controlling process exits, the system revokes further access to the controlling terminal and sends a SIGHUP signal to the foreground process group. If a process such as a job-control shell exits, each process group that it created will become an orphaned process group。

(5).bash作業(yè)控制命令

(a). nohup:使用nohup讓程序永遠(yuǎn)后臺(tái)運(yùn)行

   由于很多程序不是守護(hù)進(jìn)程,我們又想讓它在后臺(tái)運(yùn)行,不受SIGHUP信號(hào)影響(例如shell退出或者終端連接斷開),那么使用nohup命令。

    $nohup sleep 100 &

    $appending output to nohup.out  #無論是否將命令重定向輸出輸出終端,輸出都將附加到當(dāng)前目錄的nohup文件中。

    $ps -t pts/0

    #可以看到sleep 100進(jìn)程終端為pts/0

    $exit

   然后打開另一終端:

   $ tty

    /dev/pts/1

    $ ps -ef | grep sleep | grep -v grep

    luffy     4171     1  0 18:12 ?        00:00:00 sleep 100

    #100秒后再次查詢,結(jié)果為空。說明進(jìn)程正常退出   

(b). 作業(yè)號(hào)%n:支持作業(yè)控制的Shell可以識(shí)別%+作業(yè)號(hào)的作業(yè)進(jìn)程

例如:

$ sleep 10&

[1] 4294

$ %1        #bring %1 to front,same as fg %1

sleep 10

(c).$fg 則將第一個(gè)作業(yè)放到前臺(tái)。fg %n

(d).bg 將一個(gè)在后臺(tái)暫停的命令,變成繼續(xù)執(zhí)行 如果后臺(tái)中有多個(gè)命令,可以用bg %jobnumber將選中的命令調(diào)出,%jobnumber是通過jobs命令查到的后臺(tái)正在執(zhí)行的命令的序號(hào)(不是pid)。

(e).jobs

(f). ctrl+z or &

 

(6).Linux讓進(jìn)程在后臺(tái)執(zhí)行

(a). nohup命令:略

(b). setsid命令. 如果我們的進(jìn)程不屬于接受HUP 信號(hào)的終端的子進(jìn)程,那么自然也就不會(huì)受到HUP 信號(hào)的影響了。setsid 就能幫助我們做到這一點(diǎn)。系統(tǒng)調(diào)用setsid()請見前面。

$setsid ping www.baidu.com

$ PING www.a.shifen.com (119.75.218.70) 56(84) bytes of data.

64 bytes from 119.75.218.70: icmp_req=1 ttl=54 time=1.88 ms

......

^C

64 bytes from 119.75.218.70: icmp_req=3 ttl=54 time=1.65 ms

64 bytes from 119.75.218.70: icmp_req=4 ttl=54 time=1.92 ms

......

輸出信息會(huì)不斷出現(xiàn)在這個(gè)終端,由于這個(gè)進(jìn)程已經(jīng)不是這個(gè)Shell的會(huì)話了,所以Ctrl+C不能終止這個(gè)進(jìn)程。就算關(guān)閉整個(gè)終端,程序也會(huì)繼續(xù)執(zhí)行。

在另一個(gè)終端將它終止 :

$ ps -e -o pid -o sid -o pgid -o command | grep ping | grep -v grep

 4474  4474  4474 ping www.baidu.com

#可以看出sid=pid.由于是

$ kill -SIGKILL 4396

$ ps -ef | grep ping |grep -v grep

進(jìn)程被kill掉。

(c).(&)

subshell:一個(gè)或多個(gè)命令包含在()里執(zhí)行就能讓他們在子shell中執(zhí)行。所以讓在子shell中執(zhí)行的作業(yè)用jobs看不到,自然也不會(huì)接收任何hup信號(hào)。例如:

$(ping www.baidu.com &)

(d).disown

對于已經(jīng)提交出去的命令,使用作業(yè)調(diào)度disown來達(dá)到目的:

用disown -h jobspec 來使某個(gè)作業(yè)忽略HUP信號(hào)。

用disown -ah 來使所有的作業(yè)都忽略HUP信號(hào)。

用disown -rh 來使正在運(yùn)行的作業(yè)忽略HUP信號(hào)。

# cp -r testLargeFile largeFile &

[1] 4825

# jobs

[1]+  Running                 cp -i -r testLargeFile largeFile &

# disown -h %1

# ps -ef |grep largeFile

root      4825   968  1 09:46 pts/4    00:00:00 cp -i -r testLargeFile largeFile

root      4853   968  0 09:46 pts/4    00:00:00 grep largeFile

# logout  

對于正在運(yùn)行,沒有加&放到后臺(tái)運(yùn)行的程序可以先ctrl+Z停止進(jìn)程,然后用bg %n讓這個(gè)作業(yè)繼續(xù)執(zhí)行。再用disown忽略hup信號(hào)。

(e). screen終端模擬器,功能強(qiáng)大這里只簡單介紹。

沒有啟動(dòng)screen的進(jìn)程樹 :

$ ping www.baidu.com >~/temp.output &

[1] 4962

$ pstree -H 4962        #讓指定的進(jìn)程高亮顯示

init─┬─/usr/bin/termin─┬─bash

     │                ├─bash─┬─ping

......

在使用了screen的進(jìn)程樹

# screen -r Urumchi

# ping www.ibm.com &

[1] 9488

# pstree -H 9488

init-+-/usr/bin/termin-+-bash

     |                 |-bash-+-ping

     |                 |      `-screen---screen-+-bash

 

Reference:

APUE

man

Stty使用一技    http://fanqiang.chinaunix.net/a1/b4/20020606/060200245.html

Linux中的終端、控制臺(tái)、tty、pty等概念    http://news.newhua.com/news1program_language/2010/623/10623141048745773199BCF0CFH6AKB9930IGCFKHBH4IBE65IDFI07F.html

IBM文庫-Linux 技巧:讓進(jìn)程在后臺(tái)可靠運(yùn)行的幾種方法http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Linux下的終端和作業(yè)控制
linux中screen命令的用法 | 時(shí)光漂流瓶
ps指令詳解
當(dāng)前控制臺(tái): /dev/tty
Linux命令nohup和screen命令的區(qū)別
linux后臺(tái)運(yùn)行和關(guān)閉、查看后臺(tái)任務(wù)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服