systemdのinit.dスクリプトを無効にする


11

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スクリプトから開始されsystemctl disable、ソースがinit.dスクリプトの場合は機能しないと想定しています。代わりに、起動時に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

RPi / raspianは、サーバーフォールトの意味で局所的であるとは見なしません。デバイスの熱狂的な性質は、UnixとLinuxスーパーユーザー、またはUNIXに関連しない質問の場合はRaspberry Piに適しています。

ありがとう。奇妙な質問です。これらの異なるサイトの正確なスコープをどこで見つけて、それぞれの正確なスコープを調べることができますか?
Martijn 2014

ええ、それは難しいです。それぞれのツアーヘルプセンターから始めるのが良いでしょう。また、メタに関する特定のポイント、特にmeta.serverfault.com/questions/5586/…に関連する点についても明確にしています。

Hrm。私はそれには同意しませんが、その意見に重みを付けるには、あまりにも多くの新人です。同時に、私が思うに、少なくともUnixとLinuxについては同じくらい話題になっています。移行をお願いします。
Martijn、2014

回答:


5

(ルートとして)試してください:

systemctl disable graphical.target

再起動後は、ではmulti-userなくモードになりますgraphical

それが失敗した場合、デフォルトのターゲットが何であるかを確認してください:

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

おそらく驚くべきことに、それでも私はlightdmに着陸します
Martijn

うーん。驚きました。私はもう少し掘り下げました-問題は、現時点ではVPSにしかSSHで接続できず、私の目の前に自分の考えをチェックする「グラフィカル」システムがないことです!
garethTheRed

実際のシステムにアクセスできるようになりました。
garethTheRed 14

奇妙なことに、/ etc / systemd / system / default.targetのdefault.targetが/lib/systemd/system/multi-user.targetにシンボリックリンクされており、systemctl list-units == type = targetはそうであるにもかかわらず、それはまだlightdmを開始していますグラフィカルなターゲットをアクティブとしてリストしません。特定のフォールバックinit.dスクリプトが存在するためだと感じています。何が原因なのかはまだわかりませんが、私の個人的な問題は、有用な一般的な質問ではなくなり、「問題の解決に役立つ」フォーラムの質問になりつつあります。私はもっ​​と助けてくれて感謝していますが、それがもはやスタック交換に属していないことを認めます。
Martijn 14

1
正しい方法はsystemctl set-default multi-user
次のとおり

7

systemctl disableソースがinit.dスクリプトの場合は機能しません。代わりにlightdm、起動時の起動を無効にするにはどうすればよいですか?

皮肉なことに、これを行う「公式の」方法は、これまでのところどの回答でも言及されていません。完全を期すために、ここに示します。

サービスを「マスク」します。

systemctl mask lightdm.service

または、独自のユニットファイルを作成し、/etc/systemd/system/lightdm.serviceそれが、enableおよびdisableコマンドで有効化および無効化できる適切なファーストクラスのsystemdシチズンになるようにします。ユニットファイルinit.dは、同じベース名のファイルに優先します。lightdm.service必要に応じて、Debianの人々が書いたものにニックを付けることができます。☺

参考文献


2

update-rc.dDebian では、initスクリプトを有効または無効にできます。を使用しupdate-rc.d lightdm disableます。

graphics.targetを無効にしても機能しないのは、lightdmがgraphic.targetを認識していないためです。これはinitスクリプトであり、すべてのマルチユーザーランレベル(2-5)で起動します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.