відключити сценарій init.d в systemd


11

Я змінив систему init з sysvinit на systemd на програмі Rasbian. Встановити черевики чудово, але тепер запускається 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 запускається зі скрипта 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 є актуальним із значенням Server Fault. Ентузіяст пристрою краще підходить для Unix & Linux , Super User або у випадку не пов’язаних з Unix питань Raspberry Pi .

Дякую. Незвичайний питання, де я можу знайти точні області застосування цих різних сайтів, щоб прочитати точні області кожного?
Martijn

Так, важко, екскурсійний та довідковий центр для кожного - це гарне місце для початку. Ми також маємо роз'яснення певних моментів нашої мета, зокрема та стосуються вас meta.serverfault.com/questions/5586/… .

Грн. Хоча я не погоджуюся з цим, я занадто багато новачка тут, щоб ця думка мала будь-яку вагу. У той же час, я думаю, що це принаймні стільки ж теми на Unix та Linux. Я попрошу міграцію.
Martijn

Відповіді:


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

Хм. Здивований теж. Я зробив трохи більше копання - проблема полягає в тому, що я можу тільки SSH на VPS на даний момент і не маю "графічної" системи перед собою, щоб перевірити свої думки!
garethTheRed

Я відредагував, тепер, коли я маю доступ до реальної системи.
garethTheRed

Як не дивно, він все ще запускає lightdm, навіть незважаючи на те, що default.target у /etc/systemd/system/default.target є посиланням на /lib/systemd/system/multi-user.target та systemctl list-units == type = target doesn не вказати графічний.target як активний. У мене таке відчуття через специфічні запасні сценарії init.d; Я ще не знайшов, що це викликає, але моя особиста проблема відхиляється від того, щоб бути корисним питанням загального призначення, і стає більше питанням "допоможи мені виправити свою проблему". Буду вдячний за додаткову допомогу, але визнаю, що вона більше не належить до обміну стеками.
Martijn

1
Правильний шляхsystemctl set-default multi-user
Маєнко

7

systemctl disableне працює, якщо джерелом є init.dсценарій. Що робити замість цього, щоб відключити lightdmзапуск при завантаженні?

За іронією долі, жоден з "офіційних" способів зробити це досі не згадується в жодній відповіді. Отже, для повноти, ось вони:

Ви "маскуєте" послугу:

systemctl mask lightdm.service

Або ви створюєте власний файл файлу, /etc/systemd/system/lightdm.serviceякий потім стає належним першокласним систематизованим громадянином, який можна вмикати та вимикати за допомогою команд enableта disable. Файли файлів замінюють init.dфайли одного і того ж базового імені. lightdm.serviceЯкщо ви хочете, ви можете прозвати те, що написали люди Debian. ☺

Подальше читання


2

Ви можете увімкнути та відключити скрипти init за допомогою update-rc.dDebian. Використовуйте update-rc.d lightdm disable.

Причина відключення graphical.target не працює в тому, що lightdm не має знань щодо graphic.target. Це сценарій init і запускається на всіх багатокористувацьких рівнях (2-5).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.