systemd'de init.d komut dosyasını devre dışı bırak


11

Bir raspbian kurulumunda init sistemini sysvinit'ten systemd'ye değiştirdim. Yükleme iyi çalışıyor, ancak şimdi önyüklemede lightdm başlıyor. Bunu yapmasını istemiyorum.

Ben lightdm.serviceönyükleme başladı fark ettim . İle hizmeti durdurma

systemctl stop lightdm.service

iyi çalışıyor.

systemctl disable lightdm.service devre dışı bırakmalı, ama bana

Failed to issue method call: No such file or directory

systemctl status lightdm.service bana verir

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'nin bir systemd betiği yerine bir init.d betiğinden başlatıldığını ve kaynak bir init.d betiği ise çalışmadığını varsayıyorum systemctl disable. Önyükleme sırasında başlayan lightdm'yi devre dışı bırakmak için ne yapmalıyım?

edit: Daha fazla bilgi

çıktı $ 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

çıktı 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

çıktı 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'ın Sunucu Hatası anlamında topikal olduğunu düşünmüyoruz. Cihazın coşkulu doğası Unix & Linux , Süper Kullanıcı veya unix ile ilgili olmayan sorularda Raspberry Pi için daha uygundur .

Teşekkürler. Garip bir soru, her birinin tam kapsamlarını okumak için bu farklı sitelerin tam kapsamlarını nerede bulabilirim?
Martijn

Evet zor, her biri için tur ve yardım merkezi başlamak için iyi bir yer. Ayrıca meta'mızda özellikle sizinle ilgili ve meta.serverfault.com/questions/5586/… ile ilgili belirli noktalara ilişkin açıklığa sahibiz .

Hrm. Buna katılmıyorum, ancak bu görüşün herhangi bir ağırlığa sahip olması için çok fazla yeni gelenim. Aynı zamanda, en azından Unix ve Linux'taki konu hakkında sanırım. Bir göç isteyeceğim.
Martijn

Yanıtlar:


5

Deneyin (root olarak): -

systemctl disable graphical.target

Yeniden başlattıktan sonra, multi-useraksine modda olmalısınız graphical.

Bu başarısız olursa, varsayılan hedefinizin ne olduğunu kontrol edin: -

ls -l /lib/systemd/system/default.target
# or, depending on your distro
ls -l /etc/systemd/system/default.target

Yollardaki tek farkın en üst düzey dizin olduğunu unutmayın - ya /libda /etc.

Yukarıdakiler yumuşak bir bağlantı olmalıdır multi-user.target. Eğer işaret ederse graphical.target(root olarak) kullanarak değiştirin: -

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

önceki ls -lkomutta geçici bağlantının nerede bulunduğuna bağlı olarak .

Yeniden başlatın ve umarım ekran yöneticiniz başlamaz.

Hangi hedeflere sahip olduğunuzu görmek için şunu çalıştırın: -

systemctl --all -t target

şaşırtıcı bir şekilde, bu hala beni lightdm'de ​​iniyor
Martijn

Hmm. Şaşırmıştı. Biraz daha kazma yaptım - sorun şu anda sadece bir VPS'ye SSH yapabiliyor ve düşüncelerimi kontrol etmek için önümde bir 'grafik' sisteme sahip olamıyorum!
garethTheRed

Düzenledim, şimdi gerçek bir sisteme erişiyorum.
garethTheRed

İşin garibi, /etc/systemd/system/default.target içindeki default.target /lib/systemd/system/multi-user.target ve defaultct target-units == type = target değil graphical.target öğesini aktif olarak listelemez. Ben belirli fallback init.d komutları mevcut nedeniyle hissediyorum; Buna neyin sebep olduğunu henüz bulamadım, ancak kişisel sorunum, genel amaçlı yararlı bir soru olmaktan uzaklaşıyor ve daha çok "sorunumu çözmeme yardım et" forum sorusu haline geliyor. Daha fazla yardım için minnettar olurum, ancak artık yığın değişimine ait olmadığını kabul ediyorum.
Martijn

1
Doğru yolsystemctl set-default multi-user
Majenko

7

systemctl disableKaynak bir init.dkomut dosyasıysa çalışmaz . lightdmÖnyükleme sırasında başlatmayı devre dışı bırakmak için ne yapmam gerekir ?

İronik olarak, bunu yapmanın "resmi" yollarından hiçbiri şu ana kadar herhangi bir cevapta belirtilmedi. Yani bütünlük için, işte bunlar:

Hizmeti "maskelersiniz":

systemctl mask lightdm.service

Veya kendinize ait bir birim dosyası oluşturursunuz; /etc/systemd/system/lightdm.servicebu, enableve disablekomutlarıyla etkinleştirilebilen ve devre dışı bırakılabilen uygun bir birinci sınıf sistem vatandaşı olur . Birim dosyaları init.d, aynı taban adındaki dosyaların yerine geçer . İsterseniz lightdm.serviceDebian halkı tarafından yazılanları nickleyebilirsiniz. ☺

daha fazla okuma


2

update-rc.dDebian'da init komut dosyalarını etkinleştirebilir ve devre dışı bırakabilirsiniz . Kullanın update-rc.d lightdm disable.

Graphical.target'ın devre dışı bırakılmasının nedeni, lightdm'nin graphical.target hakkında hiçbir bilgisi olmamasıdır. Bu bir init betiğidir ve tüm çok kullanıcılı çalışma düzeylerinde (2-5) başlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.