Зупиніть роботу програми при запуску в Linux


29

Як зупинити роботу програми при запуску в Linux. Я хочу видалити деякі програми із запуску, щоб дозволити їм керувати, supervisordнаприклад, apache2


Саме тому я і не позначив це ... Я шукаю всі варіанти, коли працюю з досить кількома різними дистрибутивами.
Frozenskys

Відповіді:


29

Залежно від вашого дистрибутиву, використовуйте інструмент chkconfig або update-rc.d для вмикання / відключення системних служб.

У системі стилю redhat / suse / mandrake:

sudo chkconfig apache2 off 

На Debian:

sudo update-rc.d -f apache2 remove

Ознайомтеся з їх довідковими сторінками для отримання додаткової інформації.


Навіщо вам потрібні -f (я вважаю, що це сила) на дистрибутивах, що базуються на Debian?
Frozenskys

2
Тут є два набори файлів. У вас є фактичний скрипт init у /etc/init.d/, і ви маєте посилання на нього у каталозі runlevel /etc/rcrunlevel.d/. Ці хлопці вказують на сценарій у /etc/init.d/ Якщо ви не використовуєте -f update-rd.d, не вдасться БЕЗКОШТОВНО, сценарій у /etc/init.d/ вже видалений. Якщо ви використовуєте -f update-rc.d, то буде видалено файли посилань незалежно від того, видалено сценарій /etc/init.d/ чи ні.
Джексон

Ах, це має багато сенсу, я забув, що сценарії запуску рівня - це лише посилання на скрипти init. Дякую за додаткове пояснення.
Frozenskys

6

Якщо ви маєте справу із сучасною системою Ubuntu та кількома іншими дистрибутивами, можливо, вам доведеться мати справу з комбінацією традиційних сценаріїв init та початкових сценаріїв. Керування сценаріями init охоплюється іншими відповідями. Нижче наведено один із способів запобігти запуску початкової служби при завантаженні:

# mv /etc/init/servicename.conf /etc/init/servicename.conf.disabled

Проблема цього методу полягає в тому, що він не дозволяє запустити послугу за допомогою:

# service start servicename

Альтернативою цьому є відкриття servicename.confфайлу у вашому улюбленому редакторі та коментування будь-яких рядків, які починаються з:

start on

Тобто змінити це на

#start on ...

де раніше "..." було те, що було після "запуску". Таким чином, коли ви хочете повторно його ввімкнути, вам не потрібно пам’ятати, якими були параметри «запуск».

Нарешті, якщо у вас є нова версія upstart, ви можете просто додати слово "керівництво" до кінця файлу конфігурації. Це можна зробити безпосередньо з оболонки:

# echo "manual" >> /etc/init/servicename.conf

Це змусить ігнорувати будь-які фрази "start on" раніше у файлі.


2

Про останні системи Fedora та Future RHEL

systemctl disable httpd.service

вимкне службу httpd


Спасибі! Я спробував багато методів, але ця systmctlкоманда спрацювала чудово.
loved.by.Ісус

1

Щоб перелічити всі служби запуску

    systemctl

Щоб зупинити роботу служби при запуску

    sudo systemctl disable servicename

Наприклад, якщо нам потрібно зупинити роботу ssh-сервера при запуску

    sudo systemctl disable sshd.service

Ми можемо ввімкнути це знову, використовуючи

    sudo systemctl enable sshd.service

Практично в усіх дистрибутивах Linux використовується systemd для запуску служб запуску. Отже, вище команди працюють для більшості дистрибутивів.


Ласкаво просимо до компанії U&L та дякуємо за ваш внесок! Я хотів би зазначити, що цьому питанню зараз близько восьми років, тому прийнята відповідь на той час була правильною. Використання systemctl може бути правильним зараз , але це правильно для іншого питання .
Джефф Шаллер

@Prince дякую за детальні пояснення. Це допомогло мені зрозуміти, як працює запуск завантаження в моїй Xubuntu.
loved.by.Ісус

0

Slackware та Arch linux мають подібні методи зупинки / запуску процесів під час завантаження, відмінні від прикладів стилів Ubuntu та Redhat, наведених вище.

І в Slackware, і в Linux Linux сценарії sh існують у каталозі /etc/rc.d, як правило, один сценарій на демон або один сценарій на підсистему.

Наприклад, Slackware запускає веб-сервер Apache зі скриптом /etc/rc.d/rc.httpd, викликаним у відповідний час під час запуску системи, аргументом "start". Arch linux має різні імена сценаріїв, але те саме відбувається.

Щоб якийсь процес не запускався під час завантаження системи, на Slackware ви просто робите відповідний скрипт у /etc/rc.d не виконуваним. Щоб Apache не запускався при наступному завантаженні:

chmod -x /etc/rc.d/rc.httpd

Щоб зупинити Apache, який розпочався під час завантаження: /etc/rc.d/rc.httpd stop Вам потрібно буде мати root.

Арка трохи складніша. Файл /etc/rc.conf, сценарій оболонки, має масив DAEMONS. Щоб Apache не запускався під час завантаження, слід змінити цей рядок у /etc/rc.conf:

DAEMONS=(hal syslog-ng network netfs crond alsa sshd httpd ntpd postgresql)

До цього рядка:

DAEMONS=(hal syslog-ng network netfs crond alsa sshd ntpd postgresql)

Щоб зупинити вже виконаний апарат, ви виконаєте /etc/rc.d/httpd stopяк root.


0

У Ubuntu 10.04 ви можете керувати деякими програмами запуску з графічного інтерфейсу.

SystemPreferencesStartup Applications

Налаштування програм для запуску


1
Оригінального зображення вже немає.
thepang

-1

1) натисніть на клавішу супер-клавіші на клавіатурі 2) знайдіть "Запуск програм" 3) виберіть програму, яку ви хочете відключити.

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