何為 systemd?
systemd 是一個 Linux 下的系統和會話管理器,與 SysV 和 LSB 啟動腳本兼容。systemd 提供了積極的並行處理能力,使用套接字(socket)和 D-bus 的激活啟動服務,可使守護進程按需啟動,使用 Linux 的 cgroups 保持對進程的追蹤,支持對於系統狀態的備份與恢復,維護手動和自動掛載點,實現了基於依賴關系的可執行服務控制邏輯。
更多信息可參見 systemd 主頁。
個人軟件包存檔(PPA)地址
systemd 及相關軟件包可在此 PPA 找到,要使用該 PPA,請按下面的方法將其加入到您的軟件源列表當中:
add-apt-repository ppa:pitti/systemd
apt-get update
若找不到PPA
vim /etc/apt/source.list #增加 deb http://ppa.launchpad.net/pitti/systemd/ubuntu utopic main deb-src http://ppa.launchpad.net/pitti/systemd/ubuntu utopic main
安裝Systemd
apt-get install systemd libpam-systemd systemd-ui
這會使 systemd 與 upstart 共存於系統中,如果您想把 upstart 整個替換掉,您需要另外安裝 systemd-sysv 這個軟件包,這個軟件包提供的 reboot 等命令可將原來的程序提供的同樣的命令替換掉。
引導裝載程序的配置
在安裝完 systemd 之后,計算機可能還是會默認以 upstart 啟動,為了使系統以 systemd 使用,必須在 grub 配置文件中的 kernel 命令行指定下面的參數:
vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash init=/lib/systemd/systemd"
修改完配置后下命令需要使更改生效
update-grub
systemd 啟動時如出現下面的警告信息
/etc/mtab is not a symlink or not pointing to /proc/self/mounts. This is not supported anymore. Please make sure to replace this file by a symlink to avoid incorrect or misleading mount(8) output.
那么,最好按照建議的那樣去做,將 /etc/mtab 替換掉。否則不僅是 mount 會運行不正常,df也是一樣,而且其他會查看掛載列表的程序也很可能出問題。可以像下面這樣改:
ln -fs /proc/self/mounts /etc/mtab
systemd 的使用
啟動
若以 systemd 無法正常啟動,可以試一試在 grub 配置中的kernel一行加入下面的參數:
init=/lib/systemd/systemd systemd.unit=emergency.service
systemd.unit= 指定了系統要啟動到的目標狀態(與 sysvinit 指定運行級別相似)。
emergency.service 在虛擬終端啟動一個緊急模式的 bash shell,並且不嘗試啟動任何其他服務。
啟動后控制 systemd
控制 systemd 的主要命令是 systemctl。一些子命令如下:
systemctl list-units —— 列出所有單位(Unit,該術語表示“任務或服務”)
systemctl start [名稱...] —— 啟動(或激活)一個或多個單位
systemctl stop [名稱...] —— 停止(或掛起)一個或多個單位
systemctl enable [名稱...] —— 啟用一個或多個單位
systemctl disable [名稱...] —— 停用一個或多個單位
systemctl reboot —— 關閉或重新啟動系統
如需查看整個命令列表,請參見 systemctl(1)的 man 手冊頁。
systemadm 是 systemctl 的圖形用戶界面前端。
issue for startup systemd
http://www.jethrocarr.com/2014/07/21/installing-el7-onto-el5-xen-hosts/