systemdのランレベルを変更するにはどうすればよいですか?


27

とても簡単です。ランレベルを変更しようとしています。オンラインで見つけたものはすべて、次の場所にあるファイルを指し示します。

/etc/init/rc-sysinit.conf

ここでは、「DEFAULT_RUNLEVEL」を3またはその他に変更しようとしましたが、違いはありません(元の値は2で、あまり意味がありませんでした)。何があっても、マシンは完全に起動し、ランレベルコマンドをチェックすると、毎回結果として「N 5」が表示されます。

ランレベルを変更するにはどうすればよいですか?私はむしろ、grubまたは他の回避策のメカニズムを介してオーバーライドしません。そして、私は特にXを無効にする方法を探していません。

オンラインで見つけたすべての指示は少し古いものでしたが、16.04で何か変更がありましたか?


ブート後に手動で変更するか、毎回異なるランレベルで自動的にブートするのですか?
バイトコマンダー

毎回自動。それはubuntuデスクトップでセットアップされましたが、今はランレベルを下げてどこかにコーナーに置きたいです。
ノーム

実際、なぜランレベルを変更したいのですか?デスクトップをロードするのではなく、ターミナルインターフェイスからのみ起動しますか?その場合は、代わりにブート時に標準のターゲットsystemdロードを変更し、「テキスト」カーネルオプションを追加する必要があります。
バイトコマンダー

4
おそらく15.10以降、Ubuntuはのsystemd代わりに使用し、upstartあなたが話しているそのファイルはのためのものupstartです。古い記事を読んでも、古い記事を読む方法が見つかりますinit。しかしでsystemdは、単に使用してGUIとテキストモードを切り替えることができますsudo systemctl start graphical.targetsudo systemctl start multi-user.target
バイトコマンダー

5
すべてのレビュアーへこれは有効な質問です!そこIS使ってランレベルを変更する方法(それは「ランレベル」または「ターゲット」と呼ばれているかどうか)systemctl isolate
ロン・

回答:


50

Ubuntu 16.04はinitの代わりにsystemdを使用するため、という概念runlevelsはに置き換えられtargetsます。したがって、実際にはinitベースのランレベルとsystemdベースのターゲットの間にマッピングがあります。

   Mapping between runlevels and systemd targets
   ┌─────────┬───────────────────┐
   │Runlevel │ Target            │
   ├─────────┼───────────────────┤
   │0        │ poweroff.target   │
   ├─────────┼───────────────────┤
   │1        │ rescue.target     │
   ├─────────┼───────────────────┤
   │2, 3, 4  │ multi-user.target │
   ├─────────┼───────────────────┤
   │5        │ graphical.target  │
   ├─────────┼───────────────────┤
   │6        │ reboot.target     │
   └─────────┴───────────────────┘

ここで、16.04で「ランレベル」を変更するだけで、たとえば次のように使用できます。

sudo systemctl isolate multi-user.target

これをデフォルトの「ランレベル」にするには、次を使用できます。

sudo systemctl enable multi-user.target
sudo systemctl set-default multi-user.target

から man systemctl

   isolate NAME
       Start the unit specified on the command line and its dependencies and stop all others. If
       a unit name with no extension is given, an extension of ".target" will be assumed.

       This is similar to changing the runlevel in a traditional init system. The isolate command
       will immediately stop processes that are not enabled in the new unit, possibly including
       the graphical environment or terminal you are currently using

またman systemd.special、systemdのターゲットについて詳しく知ることもできます。


こんにちは@Ronあなたの応答は素晴らしいです私はNvidiaの公式ドライバーをインストールするためにそれをしましたが、今では私の画面はブルースクリーン以外何も表示しません。どうすれば修正できますか?助けてくれてありがとう。
ラファエルトイブナー

Grubからリカバリモードに入り、ルートが以前のランレベルに戻るときに。
LottaLava

ええ。GUIブートからテキストモードに移行するこれらの非常に素晴らしいコマンドを提供している人たちが、テキストブートからGUIブートに戻る方法について私たちに話すことをまったく気にしない方法についてコメントするつもりでした。
-nyxee

そのためsudo systemctl set-default multi-user.target、GUIモードで実行すると、再起動時に空白の画面が表示されます。これは、GUIが起動に失敗しCtrl-Alt-F3たことを示しているので、Runlevel 3を入力するために押しました(必要なことを行いました(NVIDIA- CUDA)、実行sudo systemctl set-default graphical.targetしてGUIログイン画面に戻ります。しかし、私はログインに失敗しました。前のランレベル戻す正しい方法ですか?
-nyxee

2
@nyxee-はい、sudo systemctl set-default graphical.targetGUIデスクトップ環境に戻す正しい方法です。ログインの失敗は、ランレベルの切り替えとは無関係に聞こえます。これは、nVidiaのブートループの問題に似ています。確実に調べるには、NVIDIAとクーダドライバを削除し、ランレベル3に戻ってドロップダウン、レポからのnVidiaドライバをインストールし、設定デフォルトでは、再起動、その後、5(graphical.target)のランレベルとあなたがログインできるかどうかを確認します。
アンディターファー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.