Comment puis-je arrêter un programme en cours d'exécution au démarrage sous Linux. Je souhaite supprimer certaines applications du démarrage pour leur permettre d'être géré par supervisord
e.g apache2
Selon votre distribution, utilisez l'outil chkconfig ou update-rc.d pour activer/désactiver les services système.
Sur un système de style redhat/SUSE/MANDRAKE:
Sudo chkconfig Apache2 off
Sur Debian:
Sudo update-rc.d -f Apache2 remove
Checkout leurs pages d'homme pour plus d'informations.
Si vous avez affaire à un système Ubuntu moderne et à quelques autres distributions, vous devrez peut-être gérer une combinaison de scripts d'initialisation traditionnels et de scripts à la hausse. La gestion des scripts init est couverte par d'autres réponses. Ce qui suit est un moyen d'arrêter un service de base à partir du démarrage:
# mv /etc/init/servicename.conf /etc/init/servicename.conf.disabled
Le problème avec cette méthode est qu'il ne vous permet pas de démarrer le service en utilisant:
# service start servicename
Une alternative à cela est d'ouvrir le servicename.conf
Fichier dans votre éditeur préféré et commenter les lignes qui commencent par:
start on
C'est-à-dire changer cela à
#start on ...
où le "..." est ce qui était après "commencer" précédemment. De cette façon, lorsque vous souhaitez le réactiver, vous n'avez pas à vous rappeler que les paramètres "Démarrer sur" étaient.
Enfin, si vous avez une nouvelle version de UPSTART, vous pouvez simplement ajouter le mot "manuel" à la fin du fichier de configuration. Vous pouvez le faire directement à partir de la coquille:
# echo "manual" >> /etc/init/servicename.conf
Cela entraînera l'ignorer les phrases "démarrer sur" plus tôt dans le fichier.
Sur les récents systèmes Fedora et futurs Rhel
systemctl disable httpd.service
désactivera le service httpd
Slackware et Arch Linux ont des méthodes similaires de processus d'arrêt/de démarrage au démarrage, différents des exemples de style Ubuntu et de RedHat donnés ci-dessus.
Dans Slackware et Arch Linuxes, SH Scripts existent dans le répertoire /etc/rc.d
, typiquement un script par démon, ou un script par sous-système.
Par exemple, Slackware démarre le serveur Web Apache avec un script /etc/rc.d/rc.httpd
, appelé au moment opportun lors du démarrage du système avec un argument de "start". Arch Linux a des scripts intitulés différemment, mais le même genre de chose continue.
Pour conserver un processus de départ pendant le démarrage du système, sur Slackware, vous devez simplement rendre le script approprié dans /etc/rc.d non exécutable. Pour garder Apache à partir du prochain démarrage:
chmod -x /etc/rc.d/rc.httpd
Pour arrêter une apache qui a commencé à démarrer: /etc/rc.d/rc.httpd stop
Vous devrez être root.
Arche est un peu plus complexe. Le fichier /etc/rc.conf, un script shell, contient des démons de matrice. Pour garder Apache à partir de démarrage au démarrage, vous changeriez cette ligne dans /etc/rc.conf:
DAEMONS=(hal syslog-ng network netfs crond alsa sshd httpd ntpd postgresql)
À cette ligne:
DAEMONS=(hal syslog-ng network netfs crond alsa sshd ntpd postgresql)
Pour arrêter un Apache déjà exécutant, vous exécuteriez /etc/rc.d/httpd stop
comme la racine.
Sur Ubuntu 10.04, vous pouvez contrôler certains programmes de démarrage de l'interface graphique.
System→Preferences→Startup Applications