CentOS7の systemd
についてメモ。今回は systemd
を用いてサービスの状態について表示したり、操作したり行いましょう。
システムコマンドで起動確認。
systemctl -t service
1 | [root@localhost vagrant]# systemctl -t service |
起動していないサービスも表示
systemctl -t service -all
1 | [root@localhost vagrant]# systemctl -t service -all |
定義されているUNITの設定を確認することができる。
systemctl list-unit-files --type=service
1 | [root@localhost vagrant]# systemctl list-unit-files --type=service |
- enable - 有効
- disabled - 無効
- static - 自動起動設定を持たない
UNITを有効化・無効化する。
無効化
systemctl disable UNIT-name
1
2
3
4
5
6
7[root@localhost vagrant]# systemctl list-unit-files --type=service | grep send
sendmail.service enabled
[root@localhost vagrant]# systemctl disable sendmail
rm '/etc/systemd/system/multi-user.target.wants/sendmail.service'
rm '/etc/systemd/system/multi-user.target.wants/sm-client.service'
[root@localhost vagrant]# systemctl list-unit-files --type=service | grep sendmail
sendmail.service disabled有効化
systemctl enable UNIT-name
1
2
3
4
5
6
7ot@localhost vagrant]# systemctl list-unit-files --type=service | grep sendmail
sendmail.service disabled
[root@localhost vagrant]# systemctl enable sendmail
ln -s '/usr/lib/systemd/system/sendmail.service' '/etc/systemd/system/multi-user.target.wants/sendmail.service'
ln -s '/usr/lib/systemd/system/sm-client.service' '/etc/systemd/system/multi-user.target.wants/sm-client.service'
[root@localhost vagrant]# systemctl list-unit-files --type=service | grep sendmail
sendmail.service enabled
サービスの操作(起動・停止など)
サービス起動
systemctl start Unit-name
1
2
3
4
5[root@localhost vagrant]# ps auxfw | grep -i [s]endmai
[root@localhost vagrant]# systemctl start sendmail
[root@localhost vagrant]# ps auxfw | grep -i [s]endmai
root 1333 0.0 0.4 90208 2264 ? Ss 12:57 0:00 sendmail: accepting connections
smmsp 1345 0.0 0.4 85648 1900 ? Ss 12:57 0:00 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueueサービス停止
systemctl stop Unit-name
1
2
3
4
5
6[root@localhost vagrant]# ps auxfw | grep -i [s]endmai
root 1333 0.0 0.4 90208 2264 ? Ss 12:57 0:00 sendmail: accepting connections
smmsp 1345 0.0 0.4 85648 1900 ? Ss 12:57 0:00 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
[root@localhost vagrant]# systemctl stop sendmail
[root@localhost vagrant]# ps auxfw | grep -i [s]endmai
[root@localhost vagrant]#サービス再起動
systemctl restart Unit-name
サービス再読込
systemctl reload Unit-name
reload
設定がない場合はエラーになる。1
2[root@localhost vagrant]# systemctl reload sendmail
Failed to issue method call: Job type reload is not applicable for unit sendmail.service.
追記(2015/05/20)
UNITってなんですか?と@harasou さんにご質問を頂いたので回答。
UNITとは?
systemdが操作することができるサービス名のこと。
タイプとして、target, mount, service, device の4種類分かれている。
運用で主に、使うことになるのはserviceであろう。