centos7將可執行程序做成服務


1、systemctl
用法:systemctl [OPT] COMMAND [NAME]…
啟動服務:systemctl start NAME.service
停止服務:systemctl stop NAME.service
重啟服務:systemctl restart NAME.service
服務狀態:systemctl status NAME.service
條件式重啟,已啟動才重啟,否則不作操作:systemctl try-restart NAME.service
重載或重啟服務,先加載再啟動:systemctl reload-or-restart NAME.service
重載或條件式重啟:systemctl reload-or-try-restart NAME.service
禁止自動和手動啟動:systemctl mask NAME.service
取消禁止:systemctl unmask NAME.service
查看某服務當前激活與否的狀態:systemctl is-active NAME.service
查看所有已經激活的服務:systemctl list-units -t service
查看所有服務:systemctl list-units -t service -a
設定某服務開機自啟動:systemctl enable NAME.service
設定某服務開機禁止啟動:systemctl disable NAME.service
查看所有服務的開機自啟動狀態:systemctl list-unit-files –t service
列出該服務在哪些運行級別下啟用和禁止:ls /etc/systemd/system/*.wants/sshd.service
查看服務是否開機啟動:systemctl is-enabled NAME.service
查看服務的依賴關系:systemctl list-dependencies NAME.service
殺掉進程:systemctl kill (進程名)

2、服務狀態:
loaded:unit配置文件已處理
active(running):一次或多次持續處理的運行
active(exited):成功完成一次性配置
active(waiting):運行中,等待一個事件
inactive:不運行
enable:開機啟動
disable:開機不啟動
static:開機不啟動,但可以被另一個啟用的服務激活。

3、運行級別:
0 :關機:poweroff.target
1 :單用戶模式:rescue.target
2 :默認不啟用NFS的多用戶:multi-user.target
3 :完全的多用戶:multi-user.target
4 :保留:mult-user.target
5 :圖形:graphical.target
6 :重啟:reboot.target

5、Unit文件格式:
/etc/systemd/system:系統管理員和用戶使用;
/usr/lib/systemd/system:發行版打包者使用;
默認單位是秒;通常由三部分組成:

[Unit]:定義與unit類型無關的通用選項;用於提供unit的描述信息,unit行為及依賴關系;

常用的選項:
Description:描述信息
After:定義unit的啟動次序,表示當前unit應該晚於哪些unit啟動,其功能與Before相反;
Requires:依賴到的其它units,強依賴,被依賴的units無法激活時,當前unit即無法激活;
Wants:依賴到的其它units,弱依賴;
Conflicts:定義units間的沖突關系。

[Service]:與特定類型相關的專用選項;此處為service類型;

常用選項:
Type:定義影響ExecStart及相關參數功能的unit進程啟動類型;
simple:默認值,這個daemon主要由ExecStart接的指令串來啟動,啟動后常駐於內存中;
forking:由ExacStart啟動的程序透過spawns延伸出其它子程序來作為此deamon的主要服務。原生父程序在啟動結束后就會終止。
oneshot:與simple類似,不過這個程序在完成工作后就結束,不常駐內存;
dbus:與simple類似,但這個daemon必須要在取得一個D-Bus的名稱后,才會繼續運作。因此通常也要同時設定BusName=才行;
notify:在啟動完成后會發送一個通知消息。還需要配合NotifyAccess來讓Systemd接收消息;
idle:與simple類似,要執行這個daemon必須要所有的工作都順利執行完畢后才會執行。這類的daemon通常是開機到最后才執行即可的服務。
EnvironmentFile:環境配置文件;
ExecStart:指明啟動unit要運行命令或腳本的絕對路徑;
ExecStartPre:在ExecStart之前運行;
ExecStartPost:在ExecStart之后運行;
ExecStop:指明停止unit要運行的命令或腳本;
Restart:當設定Restart=1時,則當次daemon服務意外終止后,會再次自動啟動。

[Install]:定義由”systemctl enable”以及”systemctl disable”命令在實現服務啟動或禁用時用到的一些選項。
Alias:別名,可使用systemctl command Alias.service
RequiredBy:被哪些units所依賴,強依賴;
WantedBy:被哪些units所依賴,弱依賴;
Also:安裝本服務的時候還要安裝別的相關服務。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM