日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
深入探究Linux進(jìn)程執(zhí)行模式(linux進(jìn)程執(zhí)行模式)

在Linux操作系統(tǒng)中,進(jìn)程是相互獨(dú)立的執(zhí)行實(shí)體。在實(shí)際應(yīng)用中,進(jìn)程的執(zhí)行模式對于系統(tǒng)性能和資源利用率等方面有著重要的影響。本文將,涵蓋進(jìn)程創(chuàng)建、進(jìn)程調(diào)度、進(jìn)程通信以及進(jìn)程退出等方面。

一、進(jìn)程創(chuàng)建

在Linux系統(tǒng)中,進(jìn)程創(chuàng)建是由fork()函數(shù)實(shí)現(xiàn)的。該函數(shù)會在父進(jìn)程中創(chuàng)建一個與原進(jìn)程相似的子進(jìn)程,并在子進(jìn)程和父進(jìn)程創(chuàng)建出來后讓兩者同時運(yùn)行。下面是fork()函數(shù)的調(diào)用格式:

pid_t fork(void);

fork()函數(shù)的返回值為兩個不同的整數(shù)。在父進(jìn)程中,該返回值為子進(jìn)程的PID(進(jìn)程標(biāo)識符),而在子進(jìn)程中,該返回值為0。進(jìn)程的創(chuàng)建意味著進(jìn)程擁有了一份獨(dú)立的系統(tǒng)資源,包括CPU時間、內(nèi)存空間、文件句柄等。

二、進(jìn)程調(diào)度

在Linux中,進(jìn)程的調(diào)度是操作系統(tǒng)根據(jù)一定的規(guī)則將CPU時間分配給各個進(jìn)程的過程。由于Linux系統(tǒng)是支持多任務(wù)的操作系統(tǒng),因此進(jìn)程調(diào)度是系統(tǒng)中最基本的任務(wù)之一。Linux的進(jìn)程調(diào)度器采取了時間片輪轉(zhuǎn)的方式進(jìn)行調(diào)度,即每個進(jìn)程被分配一個時間片,當(dāng)時間片用完后就會被放回等待隊(duì)列中,等待下一輪調(diào)度執(zhí)行。系統(tǒng)中的進(jìn)程根據(jù)優(yōu)先級不同,獲得的時間片也是不同的。在Linux中,進(jìn)程的優(yōu)先級是由nice值來決定的,nice值越小,進(jìn)程的優(yōu)先級越高。

除此之外,Linux系統(tǒng)還引入了多種調(diào)度算法,如完全公平調(diào)度(CFS)算法、實(shí)時調(diào)度(RT)算法等。CFS算法是一種完全公平的調(diào)度算法,它試圖使所有運(yùn)行中的進(jìn)程獲得相同的時間片,實(shí)現(xiàn)公平調(diào)度。而實(shí)時調(diào)度算法則根據(jù)進(jìn)程所需要的實(shí)時性來進(jìn)行優(yōu)先級調(diào)度,優(yōu)化實(shí)時任務(wù)的響應(yīng)時間,提高系統(tǒng)的實(shí)時性能。

三、進(jìn)程通信

在Linux系統(tǒng)中,進(jìn)程之間是通過進(jìn)程通信機(jī)制來進(jìn)行相互溝通和交換信息的。常見的進(jìn)程通信機(jī)制有管道、消息隊(duì)列、共享內(nèi)存和信號量等。其中,管道機(jī)制是最簡單的進(jìn)程通信方式,它是一種單向通信方式,只能在父子進(jìn)程之間建立。消息隊(duì)列是一種先進(jìn)先出的隊(duì)列,同樣有讀寫兩個方向。共享內(nèi)存則允許多個進(jìn)程共享同一塊內(nèi)存區(qū)域。信號量是一種用于進(jìn)程同步的機(jī)制,可以讓進(jìn)程之間互相協(xié)調(diào),避免出現(xiàn)資源競爭的情況。

四、進(jìn)程退出

進(jìn)程退出是指進(jìn)程執(zhí)行完畢后終止的過程。在Linux中,進(jìn)程正常退出的方法是通過調(diào)用exit()函數(shù)實(shí)現(xiàn)的,該函數(shù)一般在mn()函數(shù)執(zhí)行結(jié)束后調(diào)用。進(jìn)程的異常退出則分為兩種情況:一種是進(jìn)程接收到了一個信號而被迫退出,另一種是進(jìn)程執(zhí)行過程中出現(xiàn)了錯誤或者異常情況而被迫退出。

在進(jìn)程退出時,操作系統(tǒng)會在進(jìn)程的PCB中記錄進(jìn)程的狀態(tài)信息,并將該進(jìn)程從進(jìn)程表中刪除,同時釋放該進(jìn)程占用的系統(tǒng)資源。此外,操作系統(tǒng)還會向父進(jìn)程發(fā)送一個SIGCHILD信號,以通知父進(jìn)程子進(jìn)程已經(jīng)終止。

本文介紹了Linux系統(tǒng)中進(jìn)程的基本概念和執(zhí)行模式,包括進(jìn)程的創(chuàng)建、進(jìn)程調(diào)度、進(jìn)程通信以及進(jìn)程退出等方面。了解進(jìn)程的執(zhí)行模式對于理解Linux系統(tǒng)的工作原理和優(yōu)化系統(tǒng)性能有重要作用。在實(shí)際應(yīng)用中,合理地選擇進(jìn)程通信方式和優(yōu)化進(jìn)程調(diào)度算法也可以提高系統(tǒng)的運(yùn)行效率和響應(yīng)能力。

相關(guān)問題拓展閱讀:

  • Linux進(jìn)程管理及作業(yè)控制的啟動進(jìn)程

Linux進(jìn)程管理及作業(yè)控制的啟動進(jìn)程

鍵入需要運(yùn)行的程序的程序名,執(zhí)行一個程序,其實(shí)也就是啟動了一個進(jìn)程。在Linux系統(tǒng)中每個進(jìn)程都具有一個進(jìn)程號,用于系統(tǒng)識別和調(diào)度進(jìn)程。啟動一個進(jìn)程有兩個主要途徑:手工啟動和調(diào)度啟動,后者是事先進(jìn)行設(shè)置,根據(jù)用戶要求自行啟動。 由用戶輸入命令,直接啟動一個進(jìn)程便是手工啟動進(jìn)程。但手工啟動進(jìn)程又可以分為很多種,根據(jù)啟動的進(jìn)程類型不同、性質(zhì)不同,實(shí)際結(jié)果也不一樣,下面分別介紹。

1. 前臺啟動

這或許是手工啟動一個進(jìn)程的最常用的方式。一般地,用戶鍵入一個命令“l(fā)s –l”或攜指,這就已經(jīng)啟動了一個進(jìn)程,而且是一個前臺的進(jìn)程。這時候系統(tǒng)其實(shí)已經(jīng)處于一個多進(jìn)程狀態(tài)?;蛟S有些用戶會疑惑:我只啟動了一個進(jìn)程而已。但實(shí)際上有許多運(yùn)行在后臺的、系統(tǒng)啟動時就已經(jīng)自動啟動的進(jìn)程正在悄悄運(yùn)行著。還有的用戶在鍵入“l(fā)s –l”命令以后趕緊使用“ps –x”查看,卻沒有看到ls進(jìn)程,也覺得很奇怪。其實(shí)這是因?yàn)閘s這個進(jìn)程結(jié)束太快,使用ps查看時該進(jìn)程已經(jīng)執(zhí)行結(jié)束了。如果啟動一個比較耗時的進(jìn)程:

find / -name fox.jpg

然后再把該進(jìn)程掛起,使用ps查看,就會看到一個find進(jìn)程在里面。

2. 后臺啟動

直接從后臺手工啟動一個進(jìn)程用得比較少一些,除非是該進(jìn)程甚為耗時,且用戶也不急著需要結(jié)果的時候。假設(shè)用戶要啟動一個需要長時間運(yùn)行的格式化文本文件的進(jìn)程。為了不使整個shell在格式化過程中都處于“癱瘓”狀態(tài),從后臺啟動這個進(jìn)程是明智的選擇。

$ troff –me notes > note_form &

4513

$

由上例可見,從后臺啟動進(jìn)程其實(shí)就是在命令結(jié)尾加上一個&號。鍵入命令以后,出現(xiàn)一個數(shù)字,這個數(shù)字就是該進(jìn)程的編號,也稱為PID,然后就出現(xiàn)了提示符。用戶可以繼續(xù)其他工作。

上面介紹了前、后臺啟動的兩種情況。實(shí)際上這兩種啟動方式有個共同的特點(diǎn),就是新進(jìn)程都是由當(dāng)前shell這個進(jìn)程產(chǎn)生的。也就是說,是shell創(chuàng)建了新進(jìn)程,于是就稱這種關(guān)系為進(jìn)程間的父子關(guān)系。這里shell是父進(jìn)程,而新進(jìn)程是子進(jìn)程。一個父進(jìn)程可以有多個子進(jìn)程,一般地,子進(jìn)程結(jié)束后才能繼續(xù)父進(jìn)程;當(dāng)然如果是從后臺啟動,那就不用等待子進(jìn)程結(jié)束了。

一種比較特殊的情況是在使用管道符的時候。例如:

nroff -man ps.1|grep kill|more

這時候?qū)嶋H上是同時啟動了三個進(jìn)程。請注意是同時啟動的,所有放在管道兩邊的進(jìn)程都將被同時啟動,它們都是當(dāng)前shell的子程序,互相之間可以稱為兄弟進(jìn)程。

以上介紹的是手工啟動進(jìn)程的一些內(nèi)容,作為一名系統(tǒng)管理員,很多時候都需要把事情安排好以后讓其自動運(yùn)行。因?yàn)楣芾韱T不是機(jī)器,也有離開的時候,所以有些必須要做的工作而恰好管理員不能親自操作,這時候就需要使用調(diào)度啟動進(jìn)程了。 有時候需要對系統(tǒng)進(jìn)行一些比較費(fèi)時而且占用資源的維護(hù)工作,這些工作適合在深夜進(jìn)行,這時候用戶就可以事先進(jìn)行調(diào)度安排,指定任務(wù)運(yùn)行的時間或者場合,到時候系統(tǒng)會自動完成這一切工作。

要使用自動啟動進(jìn)程的功能,就需要掌握以下幾個啟動命令。

at命令

用戶使用at命令在指定時刻執(zhí)行指定的命令序列。也就是說,該命令至少需要指定一個命令、一個執(zhí)行時間才可以正常運(yùn)行。at命令可以只指定時間,也可以時間和日期一起指定。需要注意的是,指定時間有個系統(tǒng)判別問題。比如說:用戶現(xiàn)在指定了一個執(zhí)行時間:凌晨3:20,而發(fā)出at命令的時間是頭天晚上的20:00,那么究竟是在哪一天執(zhí)行該命令呢?如果用戶在3:20以前仍然在工作,那么該命令將在這個時候完成;如果用戶3:20以前就退出了工作狀態(tài),那么該命令將在第二天凌晨才得到執(zhí)行。下面是at命令的語法格式:

at 時間

at -c 作業(yè)

at允許使用一套相當(dāng)復(fù)雜的指定時間的方法,實(shí)際上是將POSIX.2標(biāo)準(zhǔn)擴(kuò)展了。它可以接受在當(dāng)天的hh:mm(小時:分鐘)式的時間指定。如果該時間已經(jīng)過去,那么就放在第二天執(zhí)行。當(dāng)然也可以使用midnight(深夜),noon(中午),teatime(飲茶時間,一般是下午4點(diǎn))等比較模衫配糊的詞語來指定時間。用戶還可以采用12小時計(jì)時制,即在時間后面加上AM(上午)或者PM(下午)來說明是上午還是下午。

也可以指定命令執(zhí)行的具體隱和日期,指定格式為month day(月 日)或者mm/dd/yy(月/日/年)或者dd.mm.yy(日.月.年)。指定的日期必須跟在指定時間的后面。

上面介紹的都是絕對計(jì)時法,其實(shí)還可以使用相對計(jì)時法,這對于安排不久就要執(zhí)行的命令是很有好處的。指定格式為:now + count time-units ,now就是當(dāng)前時間,time-units是時間單位,這里可以是 minutes(分鐘)、hours(小時)、days(天)、weeks(星期)。count是時間的數(shù)量,究竟是幾天,還是幾小時,等等。

還有一種計(jì)時方法就是直接使用today(今天)、tomorrow(明天)來指定完成命令的時間。下面通過一些例子來說明具體用法。

指定在今天下午5:30執(zhí)行某命令。假設(shè)現(xiàn)在時間是中午12:30,1999年2月24日,其命令格式如下:

at 5:30pm

at 17:30

at 17:30 today

at now + 5 hours

at now + 300 minutes

at 17:30 24.2.99

at 17:30 2/24/99

at 17:30 Feb 24

以上這些命令表達(dá)的意義是完全一樣的,所以在安排時間的時候完全可以根據(jù)個人喜好和具體情況自由選擇。一般采用絕對時間的24小時計(jì)時法可以避免由于用戶自己的疏忽造成計(jì)時錯誤的情況發(fā)生,例如上例可以寫成:

at 17:30 2/24/99

這樣非常清楚,而且別人也看得懂。

對于at命令來說,需要定時執(zhí)行的命令是從標(biāo)準(zhǔn)輸入或者使用-f選項(xiàng)指定的文件中讀取并執(zhí)行的。如果at命令是從一個使用su命令切換到用戶shell中執(zhí)行的,那么當(dāng)前用戶被認(rèn)為是執(zhí)行用戶,所有的錯誤和輸出結(jié)果都會送給這個用戶。但是如果有郵件送出的話,收到郵件的將是原來的用戶,也就是登錄時shell的所有者。

$ at -f work 4pm + 3 days

在三天后下午4點(diǎn)執(zhí)行文件work中的作業(yè)。

$ at -f work 10am Jul 31

在7月31日上午10點(diǎn)執(zhí)行文件work中的作業(yè)。

在任何情況下,超級用戶都可以使用這個命令。對于其他用戶來說,是否可以使用就取決于兩個文件:/etc/at.allow和/etc/at.deny。如果/etc/at.allow文件存在的話,那么只有在其中列出的用戶才可以使用at命令;如果該文件不存在,那么將檢查/etc/at.deny文件是否存在,在這個文件中列出的用戶均不能使用該命令。如果兩個文件都不存在,那么只有超級用戶可以使用該命令;空的/etc/at.deny文件意味著所有的用戶都可以使用該命令,這也是默認(rèn)狀態(tài)。

下面對命令中的參數(shù)進(jìn)行說明。

-V 將標(biāo)準(zhǔn)版本號打印到標(biāo)準(zhǔn)錯誤中。

-q queue 使用指定的隊(duì)列。隊(duì)列名稱是由單個字母組成,合法的隊(duì)列名可以由a-z或者A-Z。a隊(duì)列是at命令的默認(rèn)隊(duì)列。

-m 作業(yè)結(jié)束后發(fā)送郵件給執(zhí)行at命令的用戶。

-f file 使用該選項(xiàng)將使命令從指定的file讀取,而不是從標(biāo)準(zhǔn)輸入讀取。

-l atq命令的一個別名。該命令用于查看安排的作業(yè)序列,它將列出用戶排在隊(duì)列中的作業(yè),如果是超級用戶,則列出隊(duì)列中的所有工作。

命令的語法格式如下:

atq

-d atrm 命令的一個別名。該命令用于刪除指定要執(zhí)行的命令序列,語法格式如下:

atrm 作業(yè)

-c 將命令行上所列的作業(yè)送到標(biāo)準(zhǔn)輸出。

找出系統(tǒng)中所有以txt為后綴名的文件,并且進(jìn)行打印。打印結(jié)束后給用戶foxy發(fā)出郵件通知取件。指定時間為十二月二十五日凌晨兩點(diǎn)。

首先鍵入:

$ at 2:00 12/25/99

然后系統(tǒng)出現(xiàn)at>提示符,等待用戶輸入進(jìn)一步的信息,也就是需要執(zhí)行的命令序列:

at> find / -name “*.txt”|lpr

at> echo “foxy:All texts have been printed.You can take them over.Good day!River” |mail -s ”job done” foxy

輸入完每一行指令然后回車,所有指令序列輸入完畢后,使用組合鍵結(jié)束at命令的輸入。這時候屏幕將出現(xiàn)如下信息:

warning:command will be executed using /bin/sh.

job 1 at:00

提醒用戶將使用哪個shell來執(zhí)行該命令序列。 實(shí)際上如果命令序列較長或者經(jīng)常被執(zhí)行的時候,一般都采用將該序列寫到一個文件中,然后將文件作為at命令的輸入來處理。這樣不容易出錯。

例5> 上面的例子可以修改如下:

將命令序列寫入到文件/tmp/printjob,語句為:

$ at -f /tmp/printjob 2:00 12/25/99

這樣一來,at命令將使用文件中的命令序列,屏幕顯示如下:

Warning:command will be executed using /bin/sh.

job 2 at:00

當(dāng)然也可以采用以下命令:

$ at find / -name *.txt|lpr

at> echo “foxy:All texts have been printed.You can take them over.Good day!River” |mail -s ”job done” foxy

現(xiàn)在這個命令就會在合適的時間進(jìn)行了,進(jìn)行完后會發(fā)回一個信息。

仍然使用組合鍵來結(jié)束命令輸入。而且batch和at命令都將自動轉(zhuǎn)入后臺,所以啟動的時候也不需要加上&符號。

cron命令

前面介紹的兩條命令都會在一定時間內(nèi)完成一定任務(wù),但是要注意它們都只能執(zhí)行一次。也就是說,當(dāng)指定了運(yùn)行命令后,系統(tǒng)在指定時間完成任務(wù),一切就結(jié)束了。但是在很多時候需要不斷重復(fù)一些命令,比如:某公司每周一自動向員工報(bào)告頭一周公司的活動情況,這時候就需要使用cron命令來完成任務(wù)了。

實(shí)際上,cron命令是不應(yīng)該手工啟動的。cron命令在系統(tǒng)啟動時就由一個shell腳本自動啟動,進(jìn)入后臺(所以不需要使用&符號)。一般的用戶沒有運(yùn)行該命令的權(quán)限,雖然超級用戶可以手工啟動cron,不過還是建議將其放到shell腳本中由系統(tǒng)自行啟動。

首先cron命令會搜索/var/spool/cron目錄,尋找以/etc/passwd文件中的用戶名命名的crontab文件,被找到的這種文件將載入內(nèi)存。例如一個用戶名為foxy的用戶,它所對應(yīng)的crontab文件就應(yīng)該是/var/spool/cron/foxy。也就是說,以該用戶命名的crontab文件存放在/var/spool/cron目錄下面。cron命令還將搜索/etc/crontab文件,這個文件是用不同的格式寫成的。

cron啟動以后,它將首先檢查是否有用戶設(shè)置了crontab文件,如果沒有就轉(zhuǎn)入“休眠”狀態(tài),釋放系統(tǒng)資源。所以該后臺進(jìn)程占用資源極少。它每分鐘“醒”過來一次,查看當(dāng)前是否有需要運(yùn)行的命令。命令執(zhí)行結(jié)束后,任何輸出都將作為郵件發(fā)送給crontab的所有者,或者是/etc/crontab文件中MAILTO環(huán)境變量中指定的用戶。

上面簡單介紹了一些cron的工作原理,但是cron命令的執(zhí)行不需要用戶干涉;需要用戶修改的是crontab中要執(zhí)行的命令序列,所以下面介紹crontab命令。

crontab命令

crontab命令用于安裝、刪除或者列出用于驅(qū)動cron后臺進(jìn)程的表格。也就是說,用戶把需要執(zhí)行的命令序列放到crontab文件中以獲得執(zhí)行。每個用戶都可以有自己的crontab文件。下面就來看看如何創(chuàng)建一個crontab文件。

在/var/spool/cron下的crontab文件不可以直接創(chuàng)建或者直接修改。crontab文件是通過crontab命令得到的?,F(xiàn)在假設(shè)有個用戶名為foxy,需要創(chuàng)建自己的一個crontab文件。首先可以使用任何文本編輯器建立一個新文件,然后向其中寫入需要運(yùn)行的命令和要定期執(zhí)行的時間。

然后存盤退出。假設(shè)該文件為/tmp/test.cron。再后就是使用crontab命令來安裝這個文件,使之成為該用戶的crontab文件。鍵入:

crontab test.cron

這樣一個crontab 文件就建立好了??梢赞D(zhuǎn)到/var/spool/cron目錄下面查看,發(fā)現(xiàn)多了一個foxy文件。這個文件就是所需的crontab 文件。用more命令查看該文件的內(nèi)容可以發(fā)現(xiàn)文件頭有三行信息:

#DO NOT EDIT THIS FILE -edit the master and reinstall.

#(test.cron installed on Mon Feb 22 14:20:)

#(cron version –$Id:crontab.c,v 2./01/17 03:20:37 vivie Exp $)

大概意思是:

#切勿編輯此文件——如果需要改變請編輯源文件然后重新安裝。

#test.cron文件安裝時間:14:20:20 02/22/1999

如果需要改變其中的命令內(nèi)容時,還是需要重新編輯原來的文件,然后再使用crontab命令安裝。

可以使用crontab命令的用戶是有限制的。如果/etc/cron.allow文件存在,那么只有其中列出的用戶才能使用該命令;如果該文件不存在但cron.deny文件存在,那么只有未列在該文件中的用戶才能使用crontab命令;如果兩個文件都不存在,那就取決于一些參數(shù)的設(shè)置,可能是只允許超級用戶使用該命令,也可能是所有用戶都可以使用該命令。

crontab命令的語法格式如下:

crontab file

crontab {-l|-r|-e}

之一種格式用于安裝一個新的crontab 文件,安裝來源就是file所指的文件,如果使用“-”符號作為文件名,那就意味著使用標(biāo)準(zhǔn)輸入作為安裝來源。

-u 如果使用該選項(xiàng),也就是指定了是哪個具體用戶的crontab 文件將被修改。如果不指定該選項(xiàng),crontab 將默認(rèn)是操作者本人的crontab ,也就是執(zhí)行該crontab 命令的用戶的crontab 文件將被修改。但是請注意,如果使用了su命令再使用crontab 命令很可能就會出現(xiàn)混亂的情況。所以如果是使用了su命令,更好使用-u選項(xiàng)來指定究竟是哪個用戶的crontab文件。

-l 在標(biāo)準(zhǔn)輸出上顯示當(dāng)前的crontab。

-r 刪除當(dāng)前的crontab文件。

-e 使用VISUAL或者EDITOR環(huán)境變量所指的編輯器編輯當(dāng)前的crontab文件。當(dāng)結(jié)束編輯離開時,編輯后的文件將自動安裝。

# crontab -l #列出用戶目前的crontab。

10 6 * * * date

0 */2 * * * date

0 23-7/2,8 * * * date

#

在crontab文件中如何輸入需要執(zhí)行的命令和時間。該文件中每行都包括六個域,其中前五個域是指定命令被執(zhí)行的時間,最后一個域是要被執(zhí)行的命令。每個域之間使用空格或者制表符分隔。格式如下:

minute hour day-of-month month-of-year day-of-week commands

之一項(xiàng)是分鐘,第二項(xiàng)是小時,第三項(xiàng)是一個月的第幾天,第四項(xiàng)是一年的第幾個月,第五項(xiàng)是一周的星期幾,第六項(xiàng)是要執(zhí)行的命令。這些項(xiàng)都不能為空,必須填入。如果用戶不需要指定其中的幾項(xiàng),那么可以使用*代替。因?yàn)?是統(tǒng)配符,可以代替任何字符,所以就可以認(rèn)為是任何時間,也就是該項(xiàng)被忽略了。在表4-1中給出了每項(xiàng)的合法范圍。

表4-1 指定時間的合法范圍

時間

合法值

minute 00-59

hour 00-23,其中00點(diǎn)就是晚上12點(diǎn)

day-of-month

01-31

month-of-year

01-12

day-of-week

0-6,其中周日是0

這樣用戶就可以往crontab 文件中寫入無限多的行以完成無限多的命令。命令域中可以寫入所有可以在命令行寫入的命令和符號,其他所有時間域都支持列舉,也就是域中可以寫入很多的時間值,只要滿足這些時間值中的任何一個都執(zhí)行命令,每兩個時間值中間使用逗號分隔。

5,15,25,35,45,55 16,17,18 * * * command

這就是表示任意天任意月,其實(shí)就是每天的下午4點(diǎn)、5點(diǎn)、6點(diǎn)的5 min、15 min、25 min、35 min、45 min、55 min時執(zhí)行命令。

在每周一,三,五的下午3:00系統(tǒng)進(jìn)入維護(hù)狀態(tài),重新啟動系統(tǒng)。那么在crontab 文件中就應(yīng)該寫入如下字段:

00 15 * * 1,3,5 shutdown -r +5

然后將該文件存盤為foxy.cron,再鍵入crontab foxy.cron安裝該文件。

每小時的10分,40分執(zhí)行用戶目錄下的innd/bbslin這個指令:

10,40 * * * * innd/bbslink

每小時的1分執(zhí)行用戶目錄下的bin/account這個指令:

1 * * * * bin/account

每天早晨三點(diǎn)二十分執(zhí)行用戶目錄下如下所示的兩個指令(每個指令以;分隔):

20 3 * * * (/bin/rm -f expire.ls logins.bad;bin/expire>expire.1st)

每年的一月和四月,4號到9號的3點(diǎn)12分和3點(diǎn)55分執(zhí)行/bin/rm -f expire.1st這個指令,并把結(jié)果添加在mm.txt這個文件之后(mm.txt文件位于用戶自己的目錄位置)。

12,,4 * /bin/rm -f expire.1st>> m.txt

我們來看一個超級用戶的crontab文件:

#Run the ‘a(chǎn)trun’ program every minutes

#This runs anything that’s due to run from ‘a(chǎn)t’.See man ‘a(chǎn)t’ or ‘a(chǎn)trun’. 0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/lib/atrun

40 7 * * * updatedb

8,10,22,30,39,46,54,58 * * * * /bin/sync

進(jìn)程的掛起及恢復(fù)命令bg、fg

作業(yè)控制允許將進(jìn)程掛起并可以在需要時恢復(fù)進(jìn)程的運(yùn)行,被掛起的作業(yè)恢復(fù)后將從中止處開始繼續(xù)運(yùn)行。只要在鍵盤上按,即可掛起當(dāng)前的前臺作業(yè)。

$ cat >

text.file + stopped cat > text.file

$ jobs + stopped cat >text.file

在鍵盤上按后,將掛起當(dāng)前執(zhí)行的命令cat。使用jobs命令可以顯示shell的作業(yè)清單,包括具體的作業(yè)、作業(yè)號以及作業(yè)當(dāng)前所處的狀態(tài)。

恢復(fù)進(jìn)程執(zhí)行時,有兩種選擇:用fg命令將掛起的作業(yè)放回到前臺執(zhí)行;用bg命令將掛起的作業(yè)放到后臺執(zhí)行。

用戶正在使用Emacs,突然需要查看系統(tǒng)進(jìn)程情況。就首先使用組合鍵將Emacs進(jìn)程掛起,然后使用bg命令將其在后臺啟動,這樣就得到了前臺的操作控制權(quán),接著鍵入“ps –x”查看進(jìn)程情況。查看完畢后,使用fg命令將Emacs帶回前臺運(yùn)行即可。其命令格式為:

$ bg emacs

$ ps –x

$ fg emacs

默認(rèn)情況下,fg和bg命令對最近停止的作業(yè)進(jìn)行操作。如果希望恢復(fù)其他作業(yè)的運(yùn)行,可以在命令中指定要恢復(fù)作業(yè)的作業(yè)號來恢復(fù)該作業(yè)。例如:

$ fg 1

cat > text.file

linux進(jìn)程執(zhí)行模式的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux進(jìn)程執(zhí)行模式,深入探究Linux進(jìn)程執(zhí)行模式,Linux進(jìn)程管理及作業(yè)控制的啟動進(jìn)程的信息別忘了在本站進(jìn)行查找喔。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


本文標(biāo)題:深入探究Linux進(jìn)程執(zhí)行模式(linux進(jìn)程執(zhí)行模式)
URL網(wǎng)址:http://www.5511xx.com/article/cdopdoe.html