以前のLinuxサービスの主流はSysVinit(/etc/init.d/配下)だったが、最近のLinuxではsystemd(systemctlコマンド)管理に変わってきている。
基本的な役割は同じだが、RHEL5等の古いLinuxになれていると、SysVinitと systemd(systemctl)を混同しやすいので表にまとめてみた。
SysVinit | systemd | |
/etc/init.d/ | サービス名 コマンド 例) httpd start | – |
サービス自動起動オン | chkconfig サービス on 例) chkconfig httpd on chkconfig –level 235 httd on | systemctl enable サービス 例)systemctl enable snmpd.service |
サービス自動起動オフ | chkconfig サービス off | systemctl disable サービス |
サービス起動 | service サービス start | systemctl start サービス |
サービス停止 | servcie サービス stop | systemctl stop サービス |
サービスが起動しているか どうかの確認 | service サービス status | systemctl status サービス or systemctl is-active サービス |
サービスの一覧を表示 | chkconfig –list | systemctl list-units or systemctl list-units –type=service |
ログ確認 | なし | journalctl -u sshd.service |
デフォルトターゲット (runlevelのようなもの) | /etc/inittab 内の記述 id:3:initdefault: の3の部分 | ls -l /etc/systemd/system/default.target ランレベル0:poweroff.target ランレベル1:rescue.target ランレベル2,3,4:multi-user.target ランレベル5:graphical.target ランレベル6:reboot.target 確認: systemctl get-default |
最初に実行されるプログラム (プロセス) | /sbin/init | systemd |
以上