Прекратить запуск программы при запуске в 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
Здесь есть два набора файлов. У вас есть настоящий скрипт инициализации в /etc/init.d/, и у вас есть ссылки на него в каталоге уровня запуска /etc/rcrunlevel.d/. Эти парни указывают на скрипт в /etc/init.d/ Если вы не используете -f, то update-rd.d завершится неудачей, ЕСЛИ БЕЗ сценария в /etc/init.d/ уже удален. Если вы используете -f, то update-rc.d будет корректно удалять файлы ссылок независимо от того, был ли удален скрипт /etc/init.d/.
Джексон

Ах, это имеет большой смысл, я забыл, что сценарии уровня запуска были просто ссылками на сценарии инициализации. Спасибо за дополнительное объяснение.
Frozenskys

6

Если вы имеете дело с современной системой Ubuntu и несколькими другими дистрибутивами, вам, возможно, придется столкнуться с комбинацией традиционных скриптов инициализации и скриптов upstart. Управление сценариями инициализации покрыто другими ответами. Ниже приведен один из способов остановить запуск службы upstart при загрузке:

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

Проблема этого метода заключается в том, что он не позволяет запустить службу с помощью:

# service start servicename

Альтернатива этому - открыть servicename.confфайл в вашем любимом редакторе и закомментировать любые строки, начинающиеся с:

start on

То есть измените это на

#start on ...

где «...» - это то, что было после «начала» ранее. Таким образом, когда вы хотите снова включить его, вам не нужно запоминать, какими были параметры «start on».

Наконец, если у вас есть новая версия upstart, вы можете просто добавить слово «manual» в конец файла конфигурации. Вы можете сделать это прямо из оболочки:

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

Это заставит upstart игнорировать любые фразы «start on» ранее в файле.


2

О последних системах Fedora и Future RHEL

systemctl disable httpd.service

отключит службу httpd


Благодарность! Я перепробовал много методов, но эта systmctlкоманда работала нормально.
love.by.Иисус

1

Чтобы перечислить все службы запуска

    systemctl

Чтобы остановить запуск службы при запуске

    sudo systemctl disable servicename

Например, если нам нужно остановить запуск SSH-сервера при запуске

    sudo systemctl disable sshd.service

Мы можем включить это снова, используя

    sudo systemctl enable sshd.service

Почти все дистрибутивы Linux используют systemd для начальной загрузки сервисов запуска. Таким образом, приведенные выше команды работают для большинства дистрибутивов.


Добро пожаловать в U & L, и спасибо за ваш вклад! Я хотел бы отметить, что этому вопросу уже около восьми лет, поэтому принятый ответ был верным на тот момент. Использование systemctl может быть правильным сейчас , но это верно для другого вопроса .
Джефф Шаллер

@ Принц спасибо за подробные объяснения. Это помогло мне понять, как загрузочный запуск работает в моем Xubuntu.
love.by.Иисус

0

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

Как в Slackware, так и в Arch, в каталоге существуют сценарии 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)

Чтобы остановить уже работающий Apache, вы должны выполнить /etc/rc.d/httpd stopот имени пользователя root.


0

В Ubuntu 10.04 вы можете управлять некоторыми программами запуска из графического интерфейса.

SystemPreferencesStartup Applications

Настройки запуска приложений


1
Исходного изображения больше нет.
чепанг

-1

1) нажмите суперключ на клавиатуре 2) найдите «Startup Applications» 3) выберите программу, которую вы хотите отключить 4) нажмите как на этот ответ, если worx.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.