Arrêter le programme en cours d'exécution au démarrage sous Linux
29
Comment 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ées par supervisordexemple par apache2
Pourquoi avez-vous besoin de -f (je suppose que c'est force) sur les distributions basées sur Debian?
Frozenskys
2
Il y a deux ensembles de fichiers en jeu ici. Vous avez le script init réel dans /etc/init.d/ et vous avez les liens vers celui-ci dans votre répertoire runlevel /etc/rcrunlevel.d/. Ces types pointent vers le script dans /etc/init.d/ Si vous n'utilisez pas -f update-rd.d échouera SAUF si le script dans /etc/init.d/ est déjà supprimé. Si vous utilisez -f update-rc.d supprimera correctement les fichiers de liens, que le script /etc/init.d/ soit supprimé ou non.
jacksonh
Ah, cela a beaucoup de sens, j'avais oublié que les scripts de niveau d'exécution n'étaient que des liens vers les scripts d'initialisation. Merci pour l'explication supplémentaire.
Frozenskys
6
Si vous avez affaire à un système Ubuntu moderne et à quelques autres distributions, vous devrez peut-être composer avec une combinaison de scripts init traditionnels et de scripts upstart. La gestion des scripts d'initialisation est couverte par d'autres réponses. Voici une façon d'empêcher un service parvenu à démarrer au démarrage:
Le problème avec cette méthode est qu'elle ne vous permet pas de démarrer le service en utilisant:
# service start servicename
Une alternative à cela est d'ouvrir le servicename.conffichier dans votre éditeur préféré et de commenter toutes les lignes commençant par:
start on
Autrement dit, changez cela en
#start on ...
où le "..." est ce qui était après "démarrer" précédemment. De cette façon, lorsque vous souhaitez le réactiver, vous n'avez pas à vous rappeler quels étaient les paramètres de "démarrage".
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 depuis le shell:
# echo "manual" >> /etc/init/servicename.conf
Cela amènera upstart à ignorer toutes les phrases "start on" plus tôt dans le fichier.
Merci! J'avais essayé de nombreuses méthodes, mais cette systmctlcommande fonctionnait bien.
loves.by.Jesus
1
Pour répertorier tous les services de démarrage
systemctl
Pour arrêter l'exécution d'un service au démarrage
sudo systemctl disable servicename
Par exemple, si nous devons arrêter d'exécuter le serveur ssh au démarrage
sudo systemctl disable sshd.service
Nous pouvons réactiver ceci en utilisant
sudo systemctl enable sshd.service
Presque toutes les distributions Linux utilisent systemd pour démarrer les services de démarrage. Les commandes ci-dessus fonctionnent donc pour la plupart des distributions.
Bienvenue chez U&L, et merci pour votre contribution! Je voudrais souligner que cette question a environ huit ans maintenant, donc la réponse acceptée était correcte pour l'époque. L'utilisation de systemctl peut être correcte maintenant , mais elle est correcte pour une question différente .
Jeff Schaller
@Prince merci pour les explications détaillées. Cela m'a aidé à comprendre comment fonctionne le démarrage de démarrage dans mon Xubuntu.
loves.by.Jesus
0
Slackware et Arch linux ont des méthodes similaires pour arrêter / démarrer les processus au démarrage, différentes des exemples de style Ubuntu et Redhat donnés ci-dessus.
Dans les linux Slackware et Arch, les scripts sh existent dans le répertoire /etc/rc.d, généralement 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 approprié lors du démarrage du système avec un argument "start". Arch linux a des scripts nommés différemment, mais le même genre de chose continue.
Pour empêcher certains processus de démarrer pendant le démarrage du système, sur Slackware, il vous suffit de rendre le script approprié dans /etc/rc.d non exécutable. Pour empêcher Apache de démarrer au prochain démarrage:
chmod -x /etc/rc.d/rc.httpd
Pour arrêter un Apache démarré au démarrage: /etc/rc.d/rc.httpd stop vous devez être root.
Arch est un peu plus complexe. Le fichier /etc/rc.conf, un script shell, a un tableau DAEMONS. Pour empêcher Apache de démarrer au démarrage, vous devez modifier cette ligne dans /etc/rc.conf:
1) appuyez sur la super-touche de votre clavier 2) recherchez «Applications de démarrage» 3) choisissez le programme que vous souhaitez désactiver 4) cliquez sur comme pour cette réponse si vous travaillez.
Réponses:
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:
Sur Debian:
Consultez leurs pages de manuel pour plus d'informations.
la source
Si vous avez affaire à un système Ubuntu moderne et à quelques autres distributions, vous devrez peut-être composer avec une combinaison de scripts init traditionnels et de scripts upstart. La gestion des scripts d'initialisation est couverte par d'autres réponses. Voici une façon d'empêcher un service parvenu à démarrer au démarrage:
Le problème avec cette méthode est qu'elle ne vous permet pas de démarrer le service en utilisant:
Une alternative à cela est d'ouvrir le
servicename.conf
fichier dans votre éditeur préféré et de commenter toutes les lignes commençant par:Autrement dit, changez cela en
où le "..." est ce qui était après "démarrer" précédemment. De cette façon, lorsque vous souhaitez le réactiver, vous n'avez pas à vous rappeler quels étaient les paramètres de "démarrage".
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 depuis le shell:
Cela amènera upstart à ignorer toutes les phrases "start on" plus tôt dans le fichier.
la source
Sur les systèmes Fedora et Future RHEL récents
désactivera le service httpd
la source
systmctl
commande fonctionnait bien.Pour répertorier tous les services de démarrage
Pour arrêter l'exécution d'un service au démarrage
Par exemple, si nous devons arrêter d'exécuter le serveur ssh au démarrage
Nous pouvons réactiver ceci en utilisant
Presque toutes les distributions Linux utilisent systemd pour démarrer les services de démarrage. Les commandes ci-dessus fonctionnent donc pour la plupart des distributions.
la source
Slackware et Arch linux ont des méthodes similaires pour arrêter / démarrer les processus au démarrage, différentes des exemples de style Ubuntu et Redhat donnés ci-dessus.
Dans les linux Slackware et Arch, les scripts sh existent dans le répertoire
/etc/rc.d
, généralement 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 approprié lors du démarrage du système avec un argument "start". Arch linux a des scripts nommés différemment, mais le même genre de chose continue.Pour empêcher certains processus de démarrer pendant le démarrage du système, sur Slackware, il vous suffit de rendre le script approprié dans /etc/rc.d non exécutable. Pour empêcher Apache de démarrer au prochain démarrage:
Pour arrêter un Apache démarré au démarrage:
/etc/rc.d/rc.httpd stop
vous devez être root.Arch est un peu plus complexe. Le fichier /etc/rc.conf, un script shell, a un tableau DAEMONS. Pour empêcher Apache de démarrer au démarrage, vous devez modifier cette ligne dans /etc/rc.conf:
À cette ligne:
Pour arrêter un apache déjà en cours d'exécution, vous devez exécuter en
/etc/rc.d/httpd stop
tant que root.la source
Sur Ubuntu 10.04, vous pouvez contrôler certains programmes de démarrage à partir de l'interface graphique.
System→ Preferences→Startup Applications
la source
1) appuyez sur la super-touche de votre clavier 2) recherchez «Applications de démarrage» 3) choisissez le programme que vous souhaitez désactiver 4) cliquez sur comme pour cette réponse si vous travaillez.
la source