Linux Centos 7 systemctl(systemd)新增加service服務(wù)深寥,并且開機啟動

centos 7中采用了systemd控制系統(tǒng)服務(wù)忙迁,更加簡單,以前啟動服務(wù)需要 service xxxx start|stop等徙歼。
現(xiàn)在需要的是systemctl start|stop xxx犁河。
比如我配置的啟動tomcat,systemctl start tomcat,十分方便魄梯。以前是在桨螺,現(xiàn)在直接在/usr/lib/systemd/system里面新建一個tomcat.service,內(nèi)容如下:

[Unit]  
Description=tomcatapi  
After=network.target  
[Service]  
Type=forking  
ExecStart=/usr/local/soft/tomcat/tomcat8/bin/startup.sh  
ExecReload=  
ExecStop=/usr/local/soft/tomcat/tomcat8/bin/shutdown.sh  
PrivateTmp=true  
[Install]  
WantedBy=multi-user.target  

然后給這個tomcat.service 文件chomod +x權(quán)限即可酿秸!最后在重啟下systemctl灭翔,命令如下:

# systemctl daemon-reload

最后就可以通過systemctl start tomcat啟動啦!

上面的tomcat.service需要按需更改允扇。里面的路徑不一樣缠局。

以下是轉(zhuǎn)載的:

設(shè)置分為三個部份

[Unit]: unit 本身的說明则奥,以及與其他相依 daemon 的設(shè)置,包括在什么服務(wù)之后才啟動此 unit 之類的設(shè)置值狭园;

[Service], [Socket], [Timer], [Mount], [Path]..:不同的 unit type 就得要使用相對應(yīng)的設(shè)置項目读处。我們拿的是 sshd.service 來當范本,所以這邊就使用 [Service] 來設(shè)置唱矛。 這個項目內(nèi)主要在規(guī)范服務(wù)啟動的腳本罚舱、環(huán)境配置文件文件名、重新啟動的方式等等绎谦。

[Install]:這個項目就是將此 unit 安裝到哪個 target 里面去的意思管闷!

至于配置文件內(nèi)有些設(shè)置規(guī)則還是得要說明一下:

設(shè)置項目通常是可以重復的,例如我可以重復設(shè)置兩個 After 在配置文件中窃肠,不過包个,后面的設(shè)置會取代前面的喔!因此冤留,如果你想要將設(shè)置值歸零碧囊, 可以使用類似“ After= ”的設(shè)置,亦即該項目的等號后面什么都沒有纤怒,就將該設(shè)置歸零了 (reset)糯而。

如果設(shè)置參數(shù)需要有“是/否”的項目 (布林值, boolean),你可以使用 1, yes, true, on 代表啟動泊窘,用 0, no, false, off 代表關(guān)閉熄驼!隨你喜好選擇啰!

空白行烘豹、開頭為 # 或 ; 的那一行瓜贾,都代表注解!

每個部份里面還有很多的設(shè)置細項吴叶,我們使用一個簡單的表格來說明每個項目好了阐虚!

[Unit] 部份

Description :就是當我們使用 systemctl list-units 時,會輸出給管理員看的簡易說明蚌卤!當然实束,使用 systemctl status 輸出的此服務(wù)的說明,也是這個項目;
Documentation :這個項目在提供管理員能夠進行進一步的文件查詢的功能逊彭!提供的文件可以是如下的數(shù)據(jù):Documentation=http://www.... Documentation=man:sshd(8) Documentation=file:/etc/ssh/sshd_config;
After :說明此 unit 是在哪個 daemon 啟動之后才啟動的意思咸灿!基本上僅是說明服務(wù)啟動的順序而已,并沒有強制要求里頭的服務(wù)一定要啟動后此 unit 才能啟動侮叮。 以 sshd.service 的內(nèi)容為例避矢,該文件提到 After 后面有 network.target 以及 sshd-keygen.service,但是若這兩個 unit 沒有啟動而強制啟動 sshd.service 的話, 那么 sshd.service 應(yīng)該還是能夠啟動的审胸!
Before :與 After 的意義相反亥宿,是在什么服務(wù)啟動前最好啟動這個服務(wù)的意思。不過這僅是規(guī)范服務(wù)啟動的順序砂沛,并非強制要求的意思烫扼。
Requires :明確的定義此 unit 需要在哪個 daemon 啟動后才能夠啟動!就是設(shè)置相依服務(wù)啦碍庵!如果在此項設(shè)置的前導服務(wù)沒有啟動映企,那么此 unit 就不會被啟動!
Wants :與 Requires 剛好相反静浴,規(guī)范的是這個 unit 之后最好還要啟動什么服務(wù)比較好的意思堰氓!不過,并沒有明確的規(guī)范就是了苹享!主要的目的是希望創(chuàng)建讓使用者比較好操作的環(huán)境双絮。 因此,這個 Wants 后面接的服務(wù)如果沒有啟動得问,其實不會影響到這個 unit 本身掷邦!
Conflicts :代表沖突的服務(wù)!亦即這個項目后面接的服務(wù)如果有啟動椭赋,那么我們這個 unit 本身就不能啟動!我們 unit 有啟動或杠,則此項目后的服務(wù)就不能啟動哪怔! 反正就是沖突性的檢查啦!

接下來了解一下在 [Service] 當中有哪些項目可以使用向抢!

[Service] 部份

Type: 說明這個 daemon 啟動的方式认境,會影響到 ExecStart 喔!一般來說挟鸠,有下面幾種類型 simple:默認值叉信,這個 daemon 主要由 ExecStart 接的指令串來啟動,啟動后常駐于內(nèi)存中艘希。forking:由 ExecStart 啟動的程序通過 spawns 延伸出其他子程序來作為此 daemon 的主要服務(wù)硼身。原生的父程序在啟動結(jié)束后就會終止運行。 傳統(tǒng)的 unit 服務(wù)大多屬于這種項目覆享,例如 httpd 這個 WWW 服務(wù)佳遂,當 httpd 的程序因為運行過久因此即將終結(jié)了,則 systemd 會再重新生出另一個子程序持續(xù)運行后撒顿, 再將父程序刪除丑罪。據(jù)說這樣的性能比較好!!oneshot:與 simple 類似吩屹,不過這個程序在工作完畢后就結(jié)束了跪另,不會常駐在內(nèi)存中。dbus:與 simple 類似煤搜,但這個 daemon 必須要在取得一個 D-Bus 的名稱后免绿,才會繼續(xù)運行!因此設(shè)置這個項目時宅楞,通常也要設(shè)置 BusName= 才行针姿!idle:與 simple 類似,意思是厌衙,要執(zhí)行這個 daemon 必須要所有的工作都順利執(zhí)行完畢后才會執(zhí)行距淫。這類的 daemon 通常是開機到最后才執(zhí)行即可的服務(wù)!比較重要的項目大概是 simple, forking 與 oneshot 了婶希!畢竟很多服務(wù)需要子程序 (forking)榕暇,而有更多的動作只需要在開機的時候執(zhí)行一次(oneshot),例如文件系統(tǒng)的檢查與掛載啊等等的喻杈。
EnvironmentFile :可以指定啟動腳本的環(huán)境配置文件彤枢!例如 sshd.service 的配置文件寫入到 /etc/sysconfig/sshd 當中!你也可以使用 Environment= 后面接多個不同的 Shell 變量來給予設(shè)置筒饰!
ExecStart :就是實際執(zhí)行此 daemon 的指令或腳本程序缴啡。你也可以使用 ExecStartPre (之前) 以及 ExecStartPost (之后) 兩個設(shè)置項目來在實際啟動服務(wù)前,進行額外的指令行為瓷们。 但是你得要特別注意的是业栅,指令串僅接受“指令 參數(shù) 參數(shù)...”的格式,不能接受 <, >, >>, |, & 等特殊字符谬晕,很多的 bash 語法也不支持喔碘裕! 所以,要使用這些特殊的字符時攒钳,最好直接寫入到指令腳本里面去帮孔!不過,上述的語法也不是完全不能用不撑,亦即文兢,若要支持比較完整的 bash 語法,那你得要使用 Type=oneshot 才行喔焕檬! 其他的 Type 才不能支持這些字符禽作。
ExecStop :與 systemctl stop 的執(zhí)行有關(guān),關(guān)閉此服務(wù)時所進行的指令揩页。
ExecReload: 與 systemctl reload 有關(guān)的指令行為
Restart: 當設(shè)置 Restart=1 時旷偿,則當此 daemon 服務(wù)終止后烹俗,會再次的啟動此服務(wù)。舉例來說萍程,如果你在 tty2 使用文字界面登陸幢妄,操作完畢后登出,基本上茫负,這個時候 tty2 就已經(jīng)結(jié)束服務(wù)了蕉鸳。 但是你會看到屏幕又立刻產(chǎn)生一個新的 tty2 的登陸畫面等待你的登陸!那就是 Restart 的功能忍法!除非使用 systemctl 強制將此服務(wù)關(guān)閉潮尝,否則這個服務(wù)會源源不絕的一直重復產(chǎn)生!
RemainAfterExit :當設(shè)置為 RemainAfterExit=1 時饿序,則當這個 daemon 所屬的所有程序都終止之后勉失,此服務(wù)會再嘗試啟動。這對于 Type=oneshot 的服務(wù)很有幫助原探!
TimeoutSec: 若這個服務(wù)在啟動或者是關(guān)閉時乱凿,因為某些緣故導致無法順利“正常啟動或正常結(jié)束”的情況下,則我們要等多久才進入“強制結(jié)束”的狀態(tài)咽弦!
KillMode: 可以是 process, control-group, none 的其中一種徒蟆,如果是 process 則 daemon 終止時,只會終止主要的程序 (ExecStart 接的后面那串指令)型型,如果是 control-group 時段审, 則由此 daemon 所產(chǎn)生的其他 control-group 的程序,也都會被關(guān)閉闹蒜。如果是 none 的話戚哎,則沒有程序會被關(guān)閉喔!
RestartSec 與 Restart 有點相關(guān)性嫂用,如果這個服務(wù)被關(guān)閉,然后需要重新啟動時丈冬,大概要 sleep 多少時間再重新啟動的意思嘱函。默認是 100ms (毫秒)。

最后埂蕊,再來看看那么 Install 內(nèi)還有哪些項目可用往弓?

[Install] 部份

WantedBy: 這個設(shè)置后面接的大部分是 *.target unit !意思是蓄氧,這個 unit 本身是附掛在哪一個 target unit 下面的函似!一般來說,大多的服務(wù)性質(zhì)的 unit 都是附掛在 multi-user.target 下面喉童!
Also 當目前這個 unit 本身被 enable 時撇寞,Also 后面接的 unit 也請 enable 的意思!也就是具有相依性的服務(wù)可以寫在這里呢!
Alias 進行一個鏈接的別名的意思蔑担!當 systemctl enable 相關(guān)的服務(wù)時牌废,則此服務(wù)會進行鏈接文件的創(chuàng)建!以 multi-user.target 為例啤握,這個家伙是用來作為默認操作環(huán)境 default.target 的規(guī)劃鸟缕, 因此當你設(shè)置用成 default.target 時,這個 /etc/systemd/system/default.target 就會鏈接到 /usr/lib/systemd/system/multi-user.target 啰排抬!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末懂从,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蹲蒲,更是在濱河造成了極大的恐慌番甩,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悠鞍,死亡現(xiàn)場離奇詭異对室,居然都是意外死亡,警方通過查閱死者的電腦和手機咖祭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門掩宜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人么翰,你說我怎么就攤上這事牺汤。” “怎么了浩嫌?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵檐迟,是天一觀的道長。 經(jīng)常有香客問我码耐,道長追迟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任骚腥,我火速辦了婚禮敦间,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘束铭。我一直安慰自己廓块,他們只是感情好,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布契沫。 她就那樣靜靜地躺著带猴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪懈万。 梳的紋絲不亂的頭發(fā)上拴清,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天靶病,我揣著相機與錄音,去河邊找鬼贷掖。 笑死嫡秕,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的苹威。 我是一名探鬼主播昆咽,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼牙甫!你這毒婦竟也來了掷酗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤窟哺,失蹤者是張志新(化名)和其女友劉穎泻轰,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體且轨,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡浮声,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了旋奢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泳挥。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖至朗,靈堂內(nèi)的尸體忽然破棺而出屉符,到底是詐尸還是另有隱情,我是刑警寧澤锹引,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布矗钟,位于F島的核電站,受9級特大地震影響嫌变,放射性物質(zhì)發(fā)生泄漏吨艇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一腾啥、第九天 我趴在偏房一處隱蔽的房頂上張望东涡。 院中可真熱鬧,春花似錦碑宴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锣披,卻和暖如春贞间,著一層夾襖步出監(jiān)牢的瞬間贿条,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工增热, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留整以,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓峻仇,卻偏偏與公主長得像公黑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子摄咆,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容