Linuc 101 Linux systemd - sytemctl コマンド、target, isolate reboot, shutdown -10,
systemd
systemd とは
システム D
コンピューターが起動するときに、必要な様々なプログラムを並列して動かすプログラム。
PID ( Process ID ) が 1 である原初のプロセス。
カーネルの次に起動する。
sysVinit と違って シェルスクリプトを使わない。
Service, Socket, Mount, Target, などの unit によって管理する。
これらは拡張子にもなっているらしい。
Target は sysinit, basic, multi-user, graphical, の順番で動く。
Cgroup ( Control Group ) を使っている
ls -l /sbin/init lrwxrwxrwx 1 root root 20 Jul 7 2020 /sbin/init -> /lib/systemd/systemd
最初のプロセスである init プロセスの位置にデフォルトでシンボリックリンクがある。
つまり init として systemd はうごく!!!
systemctl とは
SYSTEM ConTroL の略かな?
systemd をターミナルで動かすためのコマンド。
サービスやターゲットなどのユニットを表示したり変更したりできる。
サービスとは
サービスとはコンピュータが開いてから閉じるまで裏で動き続けるプログラムで
別名を デーモン ( Daemon ) というらしい
ターゲットと管理
ターゲットとは、複数のユニットを機能ごとにグルーピングしているものらしい
デフォルトターゲットの表示と変更
systemctl get-default
でデフォルトのターゲットを表示し
systemctl set-default your-target
で デフォルトを your ターゲットに変更できる
実例
root@DESKTOP-8G3A2F8:~# systemctl get-default graphical.target root@DESKTOP-8G3A2F8:~# \ systemctl set-default multi-user.target Created symlink /etc/systemd/system/default.target → /lib/systemd/system/multi-user.target.
現在のデフォルトになっている graphical.target を表示し
システム D の sytem/ の default.target に multi-user.target へのリンクが追加された
isolate - 稼働状態のままターゲット変更
systemctl isolate your-target
で稼働状態のままターゲットを
your ターゲットに変更できる
普通に変更すると一度落ちるのかな?要検証
また poweroff.target, reboot.target, を指定して isolate で動かすことで
電源オフや再起動ができる。
systemctl isolate reboot.target System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down
実際に isolate で reboot を売ってみたが、 WSL だからか systemd が PID 1 になっていなくて打てなかった。
なお poweroff
や reboot
と直接打ち込んでも実行される
shutdown
shutdown +10
で 10min, shutdown +0
で即時 シャットダウンされる。
shutdown -r
で reboot される
これも WSL では上記のエラーがでて実行できない。
centos での実例
centos 6 では init プロセスの 3 か 5 で CUI モードか GUI モードを決定するが
centos 7 では systemd が動いているので、multi-user.target か graphical.target に切り替える