CentOS/RHEL Linux の以前のバージョンでは、SysV init ラン レベルを使用しています .これらの実行レベルは、システムをさまざまな目的に使用し、特定の目的に必要なサービスのみを特定の実行レベルで開始する機能を提供しました。 RHEL 7 では、実行レベルが systemd ターゲット ユニットに置き換えられました .ターゲット ユニットには .target があります 拡張機能であり、実行レベルと同様に、ターゲット ユニットを使用すると、特定の目的に必要なサービスのみでシステムを開始できます。
RHEL 7 は、以前のバージョンの RedHat Linux の実行レベルに似た一連の定義済みターゲットとともに配布されます。次のコマンドは、これらの事前定義された systemd 実行レベル ターゲット ユニットの絶対パス名を返します:
# find / -name "runlevel*.target" /usr/lib/systemd/system/runlevel5.target /usr/lib/systemd/system/runlevel0.target /usr/lib/systemd/system/runlevel6.target /usr/lib/systemd/system/runlevel1.target /usr/lib/systemd/system/runlevel2.target /usr/lib/systemd/system/runlevel3.target /usr/lib/systemd/system/runlevel4.target
SysV 実行レベルとターゲット ユニットの比較
実行レベル | 対象ユニット | 説明 |
---|---|---|
0 | runlevel0.target、poweroff.target | シャットダウンして電源を切る |
1 | ランレベル1.ターゲット、レスキュー.ターゲット | レスキュー シェルのセットアップ |
2,3,4 | runlevel[234].target, multi-user.target | 非グラフィカル マルチユーザー シェルのセットアップ |
5 | runlevel5.target、graphical.target | グラフィカルなマルチユーザー シェルのセットアップ |
6 | runlevel6.target、reboot.target | システムをシャットダウンして再起動 |
各 runlevel[0123456].target ファイルは、同等のシステム起動ターゲットへのシンボリック リンクです。例:
# cd /usr/lib/systemd/system # ls -l runlevel* lrwxrwxrwx. 1 root root 15 Sep 23 19:52 runlevel0.target -> poweroff.target lrwxrwxrwx. 1 root root 13 Sep 23 19:52 runlevel1.target -> rescue.target lrwxrwxrwx. 1 root root 17 Sep 23 19:52 runlevel2.target -> multi-user.target lrwxrwxrwx. 1 root root 17 Sep 23 19:52 runlevel3.target -> multi-user.target lrwxrwxrwx. 1 root root 17 Sep 23 19:52 runlevel4.target -> multi-user.target lrwxrwxrwx. 1 root root 16 Sep 23 19:52 runlevel5.target -> graphical.target lrwxrwxrwx. 1 root root 13 Sep 23 19:52 runlevel6.target -> reboot.target
1.デフォルト/現在の目標単位を表示
次のコマンドを使用して、デフォルトで使用されるターゲット ユニットを表示します:
# systemctl get-default graphical.target
graphical.target target unit は、システムがグラフィカルなマルチユーザー状態で実行されていることを示します。これは、SysV init システムの実行レベル 5 に似ています。古いコマンド runlevel を使用してこれを確認できます :
# runlevel N 5
デフォルトのターゲット ユニットは /etc/systemd/system/default.target で表されます ファイル。このファイルは、現在のデフォルトのターゲット ユニットへのシンボリック リンクです。例:
# ls -lrt /etc/systemd/system/default.target lrwxrwxrwx. 1 root root 36 Sep 23 20:01 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target
2.現在アクティブなターゲットを一覧表示
システムで現在アクティブなターゲット ユニットを表示するには、以下のコマンドを使用します。
# systemctl list-units --type target UNIT LOAD ACTIVE SUB DESCRIPTION basic.target loaded active active Basic System cryptsetup.target loaded active active Encrypted Volumes getty.target loaded active active Login Prompts graphical.target loaded active active Graphical Interface local-fs-pre.target loaded active active Local File Systems (Pre) local-fs.target loaded active active Local File Systems multi-user.target loaded active active Multi-User System network-online.target loaded active active Network is Online network.target loaded active active Network nfs-client.target loaded active active NFS client services nss-user-lookup.target loaded active active User and Group Name Lookups paths.target loaded active active Paths remote-fs-pre.target loaded active active Remote File Systems (Pre) remote-fs.target loaded active active Remote File Systems slices.target loaded active active Slices sockets.target loaded active active Sockets swap.target loaded active active Swap sysinit.target loaded active active System Initialization timers.target loaded active active Timers LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 19 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'.
3.デフォルトの対象単位を変更
次のコマンドを使用して、デフォルトのターゲット ユニットを変更します (たとえば、デフォルトを multi-user.target ユニットに変更するには):
# systemctl set-default multi-user.target Removed symlink /etc/systemd/system/default.target. Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
default.target シンボリック リンクが変更され、現在 multi-user.target ユニットを指していることに注意してください:
# ls -lrt /etc/systemd/system/default.target lrwxrwxrwx. 1 root root 41 Sep 24 11:58 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target
4.現在アクティブなシステム ターゲット ユニットを変更
set-default コマンドは、システムの現在の状態を変更しません。現在アクティブなシステム ターゲットを変更するには (たとえば、現在アクティブなシステム ターゲットを multi-user.target に変更するには):
# systemctl isolate multi-user.target
このコマンドは、telinit [runlevel] を使用するのと似ています 現在の実行レベルを変更します。この telinit コマンドはまだ存在しますが、互換性の理由でのみ含まれています。
次のコマンドを使用して、デフォルトのターゲット単位を入力することもできます:
# systemctl default
これは次のコマンドと同等です:
# systemctl isolate default.targetCentOS / RHEL 7 :systemd コマンド ライン リファレンス (チート シート)
CentOS / RHEL 7 :systemd でランレベル (ターゲット) を変更する方法
CentOS / RHEL 7 :systemd サービス ユニットの初心者向けガイド
CentOS / RHEL 7 :systemd の初心者向けガイド