CentOS7でデフォルトログインをCUIにする

CentOS7などのsystemを利用するOSでデフォルトログイン方法をCUIに変えるにはディスプレイマネージャを無効にすればよい。

環境

[root@localhost updates]# cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core) 

状態の確認

サービスの有効化を確認(2通り)

[root@localhost updates]# systemctl list-unit-files | grep gdm.service
gdm.service                                   enabled 
[root@localhost updates]# systemctl is-enabled gdm.service
enabled

サービスの起動状態を含めて確認

[root@localhost updates]# systemctl status gdm.service
● gdm.service - GNOME Display Manager
   Loaded: loaded (/usr/lib/systemd/system/gdm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-05-06 10:26:23 JST; 2h 32min ago
  Process: 1013 ExecStartPost=/bin/bash -c TERM=linux /usr/bin/clear > /dev/tty1 (code=exited, status=0/SUCCESS)
 Main PID: 934 (gdm)
   CGroup: /system.slice/gdm.service
           ├─ 934 /usr/sbin/gdm
           └─1042 /usr/bin/Xorg :0 -background none -noreset -audit 4 -verbose -auth /r...

May 06 10:26:23 localhost.localdomain systemd[1]: Starting GNOME Display Manager...
May 06 10:26:23 localhost.localdomain systemd[1]: Started GNOME Display Manager.
May 06 10:27:40 localhost.localdomain gdm[934]: Child process -2639 was already dead.

デフォルトのGDM(GNOME Display Manager)が有効になっている。

設定変更

サービスの無効化

[root@localhost updates]# systemctl disable gdm.service
Removed symlink /etc/systemd/system/display-manager.service.

サービスが無効なことを確認(2通り)

[root@localhost updates]# systemctl list-unit-files | grep gdm.service
gdm.service                                   disabled
[root@localhost updates]# systemctl is-enabled gdm.service
disabled

サービスの起動状態も含めて確認

[root@localhost updates]# systemctl status gdm.service
● gdm.service - GNOME Display Manager
   Loaded: loaded (/usr/lib/systemd/system/gdm.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
 Main PID: 934
   CGroup: /system.slice/gdm.service
           ├─ 934 /usr/sbin/gdm
           └─1042 /usr/bin/Xorg :0 -background none -noreset -audit 4 -verbose -auth /r...

May 06 10:26:23 localhost.localdomain systemd[1]: Starting GNOME Display Manager...
May 06 10:26:23 localhost.localdomain systemd[1]: Started GNOME Display Manager.
May 06 10:27:40 localhost.localdomain gdm[934]: Child process -2639 was already dead.

GDMが無効化された。 なおこの時点では起動しているGDMGUIが停止するわけではない(GUI表示のまま)。

再起動(reboot)するとCUIログインに切り替わる

その他

なお、rebootコマンドはLinux以外のUnixだと危険なコマンドらしい。

Linuxについては、Man page of SHUTDOWNにあるように、rebootはshutdown -r -q nowのエイリアスです(シェルのエイリアスというわけではなく、内部でshutdown -r -q nowを呼び出しているだけと言うこと)。shutdownと同じくinitシステムを6に切り替えるため、サービスを順番に落とし(最新のLinuxではsystemdやupstartが採用される場合が多いですが、同じように順番にサービスを落とします)、再起動を行います。サービスが依存関係に基づいた安全な順序でおとされ、各終了処理も実行されますので、shotdownを使う場合と同じく、安全に再起動が可能です。

しかし、LinuxではないUNIXでは違います。次の二つを見てください。

FreeBSD 11.0 | On-line Manual of “reboot

Solaris 11.2 | reboot - マニュアルページセク ション 1M: システム管理コマンド  

FreeBSDSolarisでは、shutdownへのエイリアスででも呼び出す物でもありません。これらのrebootでは、initシステムの切り替えが発生せず、全てのプロセスに対して終了シグナルを送るだけです。サービスの終了順序は守られませんし、initスクリプトに記載された終了時の処理も行われません。そのため、サービスによってはテンポラリファイルやPIDファイルが残ったり、エラーが記録されたり、最後の情報が書き込まれなかったり等の不具合が起きる可能性があります

出典:Linux - shutdownコマンドとrebootコマンドの違いについて(56240)|teratail