Як зупинити роботу програми при запуску в Linux. Я хочу видалити деякі програми із запуску, щоб дозволити їм керувати, supervisord
наприклад, apache2
Як зупинити роботу програми при запуску в Linux. Я хочу видалити деякі програми із запуску, щоб дозволити їм керувати, supervisord
наприклад, apache2
Відповіді:
Залежно від вашого дистрибутиву, використовуйте інструмент chkconfig або update-rc.d для вмикання / відключення системних служб.
У системі стилю redhat / suse / mandrake:
sudo chkconfig apache2 off
На Debian:
sudo update-rc.d -f apache2 remove
Ознайомтеся з їх довідковими сторінками для отримання додаткової інформації.
Якщо ви маєте справу із сучасною системою 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" раніше у файлі.
Про останні системи Fedora та Future RHEL
systemctl disable httpd.service
вимкне службу httpd
systmctl
команда спрацювала чудово.
Щоб перелічити всі служби запуску
systemctl
Щоб зупинити роботу служби при запуску
sudo systemctl disable servicename
Наприклад, якщо нам потрібно зупинити роботу ssh-сервера при запуску
sudo systemctl disable sshd.service
Ми можемо ввімкнути це знову, використовуючи
sudo systemctl enable sshd.service
Практично в усіх дистрибутивах Linux використовується systemd для запуску служб запуску. Отже, вище команди працюють для більшості дистрибутивів.
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.
У Ubuntu 10.04 ви можете керувати деякими програмами запуску з графічного інтерфейсу.
System→ Preferences→Startup Applications
1) натисніть на клавішу супер-клавіші на клавіатурі 2) знайдіть "Запуск програм" 3) виберіть програму, яку ви хочете відключити.