Raspbianインストールで、initシステムをsysvinitからsystemdに変更しました。インストールは正常に起動しますが、今度は起動時にlightdmを開始します。私はそれをしたくありません。
lightdm.service
が起動時に開始されることに気づきました。でサービスを停止する
systemctl stop lightdm.service
正常に動作します。
systemctl disable lightdm.service
は無効にする必要がありますが、
Failed to issue method call: No such file or directory
systemctl status lightdm.service
がくれます
lightdm.service - LSB: Light Display Manager
Loaded: loaded (/etc/init.d/lightdm)
Active: inactive (dead) since Thu, 03 Jul 2014 09:33:00 +0000; 22min ago
Process: 762 ExecStop=/etc/init.d/lightdm stop (code=exited, status=0/SUCCESS)
Process: 411 ExecStart=/etc/init.d/lightdm start (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/lightdm.service
Lightdmはsystemdスクリプトではなくinit.dスクリプトから開始されると想定しています。ソースがinit.dスクリプトの場合、systemctl disable
は機能しません。代わりに、起動時にlightdmを無効にするにはどうすればよいですか?
編集:詳細
$ ls -l /etc/systemd/system
の出力:
total 20
lrwxrwxrwx 1 root root 42 Jul 3 09:04 dbus-fi.epitest.hostap.WPASupplicant.service -> /lib/systemd/system/wpa_supplicant.service
lrwxrwxrwx 1 root root 37 Jul 3 13:03 default.target -> /lib/systemd/system/multi-user.target
drwxr-xr-x 2 root root 4096 Jul 3 09:00 getty.target.wants
drwxr-xr-x 2 root root 4096 Jul 3 09:04 graphical.target.wants
drwxr-xr-x 2 root root 4096 Oct 11 2013 local-fs.target.wants
drwxr-xr-x 2 root root 4096 Jul 3 09:04 multi-user.target.wants
drwxr-xr-x 2 root root 4096 Oct 11 2013 sysinit.target.wants
lrwxrwxrwx 1 root root 35 Mar 20 2013 syslog.service -> /lib/systemd/system/rsyslog.service
systemctl --all -t target
の出力:
UNIT LOAD ACTIVE SUB JOB DESCRIPTION
all.target error inactive dead all.target
basic.target loaded active active Basic System
cryptsetup.target loaded active active Encrypted Volumes
emergency.target loaded inactive dead Emergency Mode
final.target loaded inactive dead Final Step
getty.target loaded active active Login Prompts
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
network.target loaded inactive dead Network
nss-lookup.target loaded inactive dead Name Lookups
remote-fs.target loaded active active Remote File Systems
rescue.target loaded inactive dead Rescue Mode
shutdown.target loaded inactive dead Shutdown
sockets.target loaded active active Sockets
sound.target loaded active active Sound Card
swap.target loaded active active Swap
sysinit.target loaded active active System Initialization
syslog.target loaded active active Syslog
time-sync.target loaded inactive dead System Time Synchronized
umount.target loaded inactive dead Unmount All Filesystems
ls -l /etc/systemd/system/multi-user.target.wants/
の出力:
total 8
drwxr-xr-x 2 root root 4096 Jul 3 09:04 .
drwxr-xr-x 7 root root 4096 Jul 3 13:03 ..
lrwxrwxrwx 1 root root 36 Oct 11 2013 remote-fs.target -> /lib/systemd/system/remote-fs.target
lrwxrwxrwx 1 root root 33 Jul 3 09:04 rsync.service -> /lib/systemd/system/rsync.service
lrwxrwxrwx 1 root root 35 Mar 20 2013 rsyslog.service -> /lib/systemd/system/rsyslog.service
lrwxrwxrwx 1 root root 32 Jul 3 09:04 Sudo.service -> /lib/systemd/system/Sudo.service
lrwxrwxrwx 1 root root 42 Jul 3 09:04 wpa_supplicant.service -> /lib/systemd/system/wpa_supplicant.service
(ルートとして)試してください:-
systemctl disable graphical.target
再起動後は、graphical
ではなくmulti-user
モードになっているはずです。
それが失敗した場合、デフォルトのターゲットが何であるかを確認してください:
ls -l /lib/systemd/system/default.target
# or, depending on your distro
ls -l /etc/systemd/system/default.target
パスの唯一の違いは、最上位ディレクトリである/lib
または/etc
のいずれかであることに注意してください。
上記はmulti-user.target
へのソフトリンクである必要があります。 graphical.target
を指している場合は、(rootとして)使用して変更します。
ln -sf /lib/systemd/system/multi-user.target /lib/systemd/system/default.target
# or
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
前のls -l
コマンドでソフトリンクが見つかった場所に応じて。
再起動すると、うまくいけばディスプレイマネージャーが起動しません。
あなたが持っているターゲットを確認するには、以下を実行してください:
systemctl --all -t target
ソースが
systemctl disable
スクリプトの場合、init.d
は機能しません。起動時にlightdm
を無効にする代わりに何をすべきですか?
皮肉なことに、これを行う「公式の」方法は、これまでのところどの回答でも言及されていません。完全を期すために、ここに示します。
サービスを「マスク」します。
systemctl mask lightdm.service
または、独自のユニットファイルを/etc/systemd/system/lightdm.service
として作成し、enable
およびdisable
コマンドを使用して有効化および無効化できる適切なファーストクラスのsystemdシチズンになります。ユニットファイルは、同じベース名のinit.d
ファイルに取って代わります。必要に応じて、Debianの人々によって書かれた lightdm.service
にニックを付けることができます。 ☺
Debianでは、update-rc.d
を使用してinitスクリプトを有効または無効にできます。 update-rc.d lightdm disable
を使用します。
Graphics.targetを無効にしても機能しないのは、lightdmがgraphic.targetを認識していないためです。これはinitスクリプトであり、すべてのマルチユーザーランレベル(2-5)で起動します。