非常に簡単です。ランレベルを変更しようとしています。オンラインで見つけたものはすべて、次の場所にあるファイルを指し示します。
/etc/init/rc-sysinit.conf
ここでは、「DEFAULT_RUNLEVEL」を3またはその他に変更しようとしましたが、違いはありません(元の値は2で、あまり意味がありませんでした)。何があっても、マシンは完全に起動し、ランレベルコマンドをチェックすると、毎回結果として「N 5」が表示されます。
ランレベルを変更するにはどうすればよいですか?私はむしろ、grubまたは他の回避策のメカニズムを介してオーバーライドしません。そして、私は特にXを無効にする方法を探していません。
オンラインで見つけたすべての指示は少し古いものでしたが、16.04で何か変更がありましたか?
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のターゲットについて詳しく知ってください。