centOs7的一個巨大的變動就是用systemd取代了原來的System V init。systemd是一個完整的軟體包,安裝完成後有很多物理文件組成,大致分佈為,配置文件位於/etc/systemd這個目錄下,配置工具命令位於/bin,和/sbin這兩個目錄下,預先準備的備用配置文件位於/lib ...
centOs7的一個巨大的變動就是用systemd取代了原來的System V init。systemd是一個完整的軟體包,安裝完成後有很多物理文件組成,大致分佈為,配置文件位於/etc/systemd這個目錄下,配置工具命令位於/bin,和/sbin這兩個目錄下,預先準備的備用配置文件位於/lib/systemd目錄下,還有庫文件和幫助手冊等等。這是一個龐大的軟體包。詳情使用rpm -ql systemd即可查看。 systemd已經不僅僅是一個啟動管理軟體,而且是一個綜合性的服務管理軟體,它將逐漸成為一個多功能的系統環境,能夠處理非常多的系統管理任務,有人甚至將它看作一個操作系統。 本文並非系統介紹systemd,而是總結出一些管理知識要點備忘。 獲取當前預設的target:systemctl get-default systemd添加新的unit(daemon): 也就是採用systemd來管理,與/sbin/chkconfig --add foo相當 把新生成的foo.service 放到/usr/lib/systemd/system/下麵,然後採用load命令導入 systemctl load foo.service systemctl daemon-reload //全部重新導入 刪除unit(daemon):刪除一個unit沒有相應的命令,通常的做法是停掉daemon,然後刪除相應的配置文件。 開機啟動unit systemctl enable postfix.service 其實質是,增加由/usr/lib/systemd/system/到/etc/systemd/system/multi-user.target.wants/下的軟鏈接 ln -s '/usr/lib/systemd/system/postfix.service' '/etc/systemd/system/multi-user.target.wants/postfix.service' 關於service單元配置文件 Description是對服務的描述,方便記憶和閱讀,一般來說這裡可以隨心所欲的。
Wants是服務項的啟動依賴那些項。
Type是服務的類型,有simple,forking,oneshot,dbus,notify,idle。其中我們常用的類型有simple,forking,oneshot。simple 是預設,這是最簡單的服務類型。意思就是說啟動的程式就是主體程式,這個程式要是退出那麼一切都退出。forking 標準 Unix Daemon 使用的啟動方式。啟動程式後會調用 fork() 函數,把必要的通信頻道都設置好之後父進程退出,留下守護精靈的子進程。oneshot種服務類型就是啟動,完成,沒進程了。
ExecStart是啟動腳本的路徑和參數,參數和腳本之間用空格分割。
Restart是配置啟動項是否需要重啟,有no,on-success,on-failure,on-abnormal,on-watchdog,on-abort,always。這些選項就是他們字面意思,abnormal意思是反常的,看文檔裡面說除了信號SIGHUP,SIGINT,SIGTERM,SIGPIPE以外其他信號終止的,都是反常的包含code dump,操作超時等。 WantBy指服務在何種情況下麵會被啟動,例如上面multi-user.target指的是多用戶環境。 開機不啟動unit systemctl disable httpd.service 刪除/etc/systemd/system/multi-user.target.wants下的軟鏈接 查看開機是否啟動 systemctl is-enabled xx.service #查詢服務是否開機啟動 systemd查看開機自啟動的程式 相當於chkconfig --list ls /etc/systemd/system/multi-user.target.wants/ 查看systemd單元載入及活動情況 systemctl 顯示啟動失敗的單元 systemctl --failed 查看systemd管理的所有單元 systemctl list-unit-files