寝ても覚めてもこんぴうた

プログラム書いたり、ネットワーク設計したり、サーバ構築したり、車いじったり、ゲームしたり。そんなひとにわたしはなりたい。 投げ銭は kyash_id : chidakiyo マデ

systemdになってinitがなくなったのでランレベル設定に困った(systemdでランレベル3相当の設定をする方法)

タイトルの通り。

initおじさんなので、 /etc/inittab に書きたいところですが、systemdになりinitdが廃止されたので、 新しい時代のお作法に則って設定しようと思います。

systemctl コマンドを使う

今回やりたいことを実現するためには、 systemctl コマンドを利用します。
もちろん管理者権限が必要なので sudo して使いましょう。

現在の状態を確認する

コマンド的にはこんな感じ

$ sudo systemctl get-default

出力は

graphical.target

のように出力されると思います。(ランレベル5相当)

設定の際には、一時的な設定と、次回起動時も有効になる設定の2つがある。

現在一時的に有効にする isolate と次回再起動後も有効にする set-default の2つの設定方法があります。
いずれも systemctl コマンドのパラメータとなるので

$ sudo systemctl isolate ~~
$ sudo sytemctl set-default ~~

のような感じで使います。

では、次回起動時も有効になるようにランレベル3相当にする

ランレベル3相当は multi-user.target と定義されていますので、

$ sudo systemctl set-default multi-user.target

とコマンドを実行すればOKです。

おまけ(ランレベルとsystemd targetの対応表)

ランレベルの対応表

ランレベル systemd target シンボリックリンク
0 poweroff.target runlevel0.target
1 rescue.target runlevel1.target
3 multi-user.target runlevel3.target
5 graphical.target runlevel5.target
6 reboot.target runlevel6.target
emergency.target

参考: How to Change Runlevels (targets) in SystemD

ではっ。