J'ai lu comment activer et désactiver des services dans Ubuntu et il semble qu'il existe différentes possibilités pour les gérer.
La première méthode que j'ai trouvée consiste update-rc.d
à ajouter de nouveaux services au démarrage, qui visent le /etc/init.d
dossier et son contenu.
L'autre que j'ai trouvé est d'éditer des .conf
fichiers dans le /etc/init
dossier.
Quelle est la méthode recommandée pour activer / désactiver / ajouter des services et pourquoi?
Pourriez-vous, s'il vous plaît, donner un exemple, étape par étape, à l'épreuve des balles, sur la façon d'ajouter un service dans Ubuntu et de l'activer et de le désactiver?
chkconfig
est ce que vous recherchez.autostart
manifestes ou dans des*.service
fichiers situés à plusieurs endroits, ainsi que dansinit.d
oucrontab
. Voir: unix.stackexchange.com/a/525845/43233Réponses:
Certains services peuvent être activés / désactivés à l'aide de l'interface graphique (comme l'
startup
application) ou du terminal.Pour le terminal, vous avez plusieurs options. Commencez par ouvrir un terminal (saisissez "terminal" dans le tableau de bord, par exemple, et ouvrez-le). Ensuite:
Activer / désactiver temporairement des services
Pour arrêter et démarrer les services temporairement (vous ne devez pas les activer / désactiver pour les futurs démarrages), vous pouvez taper
service SERVICE_NAME
. Par exemple:sudo service apache2 stop
( ARRÊTERA le service Apache jusqu'au redémarrage ou jusqu'à ce que vous le redémarriez).sudo service apache2 start
( COMMENCERA le service Apache en supposant qu'il a été arrêté avant.).service apache2 status
(Vous indiquera le statut du service, si celui-ci est activé / en cours d'exécution sur désactivé / NON en cours d'exécution.).sudo service apache2 restart
( RESTART le service. Ceci est le plus souvent utilisé lorsque vous avez changé, un fichier de configuration. Dans ce cas, si vous avez changé une configuration PHP ou une configuration Apache. Redémarrer vous évitera d'avoir à arrêter / démarrer avec 2 lignes de commande )service apache2
(Dans ce cas, puisque vous n'avez pas mentionné ACTION à exécuter pour le service, toutes les options disponibles pour ce service seront affichées.) Cet aspect varie en fonction du service. Par exemple, avec MySQL, manque un paramètre. Pour d'autres services tels que les services de réseau, mentionnons la petite liste de toutes les options disponibles.SYSTEMD
À partir de Ubuntu 15.04, Upstart sera obsolète au profit de Systemd. Avec Systemd pour gérer les services, nous pouvons effectuer les tâches suivantes:
systemctl start SERVICE
- Utilisez-le pour démarrer un service. Ne persiste pas après le redémarragesystemctl stop SERVICE
- Utilisez-le pour arrêter un service. Ne persiste pas après le redémarragesystemctl restart SERVICE
- Utilisez-le pour redémarrer un servicesystemctl reload SERVICE
- Si le service le prend en charge, il rechargera les fichiers de configuration qui lui sont associés sans interrompre aucun processus utilisant le service.systemctl status SERVICE
- Affiche l'état d'un service. Indique si un service est en cours d'exécution.systemctl enable SERVICE
- Active le service, au prochain redémarrage ou au prochain événement de démarrage. Il persiste après le redémarrage.systemctl disable SERVICE
- Désactive le service lors du prochain redémarrage ou lors du prochain événement d'arrêt. Il persiste après le redémarrage.systemctl is-enabled SERVICE
- Vérifiez si un service est actuellement configuré pour démarrer ou non au prochain redémarrage.systemctl is-active SERVICE
- Vérifiez si un service est actuellement actif.systemctl show SERVICE
- Afficher toutes les informations sur le service.sudo systemctl mask SERVICE
- désactiver complètement un service en le liant à/dev/null
; vous ne pouvez pas démarrer le service manuellement ni l'activer.sudo systemctl unmask SERVICE
- Supprime le lien vers/dev/null
et restaure la possibilité d'activer et / ou de démarrer manuellement le service.UPSTART (obsolète depuis le 15.04)
Si nous voulons utiliser la méthode officielle Upstart (notez que, pour le moment, tous les services n'ont pas été convertis au format Upstart), nous pourrions utiliser les commandes suivantes:
status SERVICE
- Cela nous dira si un service converti est en cours d'exécution ou non. Notez que ceci est dépréciée en faveur destart
,stop
,status
etrestart
. Il nous dira également si un service n'a pas encore été converti en upstart:Un service converti afficherait généralement l'état actuel (Démarrer, En cours, Arrêter ...) et l'identifiant du processus. Un service non converti donnerait une erreur à propos d'un travail inconnu .
Certains raccourcis peuvent uniquement fonctionner avec la
service
commande ci-dessus, mais pas avec les commandes ci-dessous, à moins qu'ils ne soient convertis à 100% en services upstart:DÉBUT -
sudo start mysql
STOP -
sudo stop mysql
REDÉMARRER -
sudo restart mysql
STATUS -
sudo status smbd
Activer / désactiver un service
Pour que le service démarre ou s’arrête de manière permanente, vous devez:
où la strophe
manual
empêchera Upstart de charger automatiquement le service au prochain démarrage. Tout service avec la.override
fin aura priorité sur le fichier de service d'origine. Par la suite, vous ne pourrez démarrer le service manuellement. Si vous ne le souhaitez pas, supprimez simplement le.override
. Par exemple:Va mettre le service MySQL en
manual
mode. Si vous ne le souhaitez pas, vous pouvez simplement faireet redémarrez pour que le service redémarre automatiquement. Bien sûr, pour activer un service, le moyen le plus courant consiste à l’installer. Si vous installez Apache, Nginx, MySQL ou d’autres, ils démarreront automatiquement à la fin de l’installation et à chaque démarrage de l’ordinateur. Désactiver, comme mentionné ci-dessus, utilisera le service
manual
.la source
.service
à chaque commande?systemctl mongod status
a bien fonctionné.systemd
ensemble de commandes fonctionne à merveille sur Ubuntu 18.04.Actuellement, il existe trois manières différentes de démarrer un logiciel en tant que service dans Ubuntu, SysV , Upstart et systemd . Un service est défini ici comme un programme exécuté par le système en arrière-plan, par opposition à un programme démarré et exécuté directement par l'utilisateur.
SysV
La méthode traditionnelle de démarrage des services sous Linux consistait à insérer un script
/etc/init.d
, puis à utiliser laupdate-rc.d
commande (ou dans les distributions basées sur RedHatchkconfig
) pour l'activer ou le désactiver.Cette commande utilise une logique légèrement compliquée pour créer des liens symboliques dans
/etc/rc#.d
, qui contrôlent l'ordre de démarrage des services. Si vous courez,ls /etc/rc2.d
vous pouvez voir l'ordre dans lequel les services seront tués avec un nom de fichier commeK##xxxx
et démarré avec les noms de fichiersS##xxxx
. Le##
inS##xxxx
signifie un "ordre de démarrage" pour le servicexxxx
. Inversement,##
inK##xxxx
signifie l'ordre de mise à mort pour le servicexxxx
.Un problème majeur avec SysV était que lors du démarrage du système, tout devait être fait en série, une chose après l’autre, ce qui ralentissait considérablement l’amorçage du système . Des tentatives ont été faites pour mettre cela en parallèle, mais elles étaient aléatoires et difficiles à exploiter pleinement. C'est la raison principale pour laquelle Upstart a été créé.
Parvenu
Upstart utilise des fichiers de définition de travail
/etc/init
pour définir sur quels événements un service doit être démarré. Ainsi, pendant le démarrage du système, Upstart traite divers événements, puis peut démarrer plusieurs services en parallèle. Cela leur permet d'utiliser pleinement les ressources du système, par exemple, en démarrant un service lié au disque pendant qu'un autre service lié au CPU s'exécute, ou pendant que le réseau attend qu'une adresse IP dynamique soit attribuée.Vous pouvez voir tous les fichiers de travail parvenus en exécutant
ls /etc/init/*.conf
Permettez-moi de m'arrêter ici et de dire que si vous ne savez pas ce qu'est un service ou ce qu'il fait, NE le désactivez PAS!
Tous les services n'ont pas été convertis en version par défaut. Au cours des derniers mois au sein de l’équipe serveur de Canonical, j’ai travaillé sur un certain nombre de fichiers d’emploi convertis, et le plus agréable est que cela permet de supprimer le script quelques commandes ici et là pour définir exactement comment démarrer le service, et rien de plus. Mais pour l'instant, seule une poignée de services de réseau traditionnels, tels que calmar et samba , ont été convertis.
Un service est-il basé sur le début?
Afin de déterminer si un service est basé sur une version upstart, vous pouvez exécuter la commande status:
Si c'est un travail récent , il montrera ceci:
Mais si ce n'est pas le cas, vous verrez quelque chose de plus semblable à ceci:
Dans ce cas,
apache2
n'a pas été converti en upstart . Donc, pourapache2
vous désactiver, lancez simplementDésactiver les services (jobs) dans upstart
Les définitions de travail Upstart n'ont pas de
update-rc.d
commande. Pour désactiver le travail, vous devez éditer le fichier de travail directement pour le désactiver. Il y a deux façons de faire ça.Si vous souhaitez toujours pouvoir le démarrer manuellement, vous devez commenter la
start on
condition. Supposons que vous souhaitiez installer Samba , mais ne le faites pas démarrer automatiquement. Voici le fichier de travail (en natty):Pour désactiver la samba , vous pouvez simplement mettre un
#
"start on local-filesystems
" devant . Notez que même si la sauvegarde ne démarre pas au démarrage, vous devez l’arrêter cette fois avecSi, toutefois, vous ne voulez jamais que samba démarre, je suggère de supprimer réellement le paquet. Si, toutefois, vous voulez l’installer, mais pas démarrer, vous pouvez aussi faire:
Désactiver un service à l'aide de la strophe start / stop (à partir de 11.04)
En commençant par la version de upstart qui sera dans 11.04, il y a un nouveau mot clé qui désactive les strophes
start on
etstop on
::manual
. Il existe donc un autre moyen de désactiver le service à partir de 11.04:Vous pouvez créer un
override
fichier pour désactiver un service sans modifier la définition du travail, en y mettant simplement lemanual
mot clé.la source
echo manual >> /etc/init/<service>.override
est préférable de laisser le fichier .conf original intact. Quoi qu’il en soit, c’est toujours dommage qu’il ait fallu 3 ans pour développer une telle activation / désactivation de base, et il n’ya pas d’interface graphique pour cela./etc/init/ssh.conf
existe , maisstatus ssh
et à lastatus sshd
fois dire « travail inconnu ». Cette réponse ne semble pas aborder une telle possibilité?status ssh
me donne un 'emploi inconnu' aussi, maisservice ssh status
travaille pour moisysv-rc-conf
Essayez d'utiliser sysv-rc-conf
et pour commencer à gérer les services, exécutez
Ce qui ouvrira une fenêtre interactive comme celle-ci
Vous pouvez continuer à naviguer dans les pages en utilisant
Ctrl+n
pour la page suivante etCtrl+p
pour la page précédente. Vous pouvez activer et désactiver les services en sélectionnantSPACE
les niveaux d'exécution souhaités.Emplois-Admin
Une autre alternative serait Jobs-Admin en installant via
Qui fournit également une interface graphique comme celle-ci
Pour afficher plus de tâches, vous devez cocher la case Afficher les tâches protégées dans son menu.
chkconfig
Et la troisième option serait chkconfig ,
Il peut être utilisé via la CLI
chkconfig
, affichant la liste des tâches On / Off. Nous pouvons également afficher les services système à l'aide dechkconfig –list
Les services peuvent être activés à l'aide de
Les services peuvent être désactivés en utilisant
Et nous pouvons même ajouter notre propre service, en utilisant un script d'initialisation approprié avec des en-têtes appropriés.
update-rc.d
Et une autre option peut être référée ici update-rc.d , expliqué brièvement ici .
Notez que pour Ubuntu Server 12.04,
update-rc.d
est utilisé à la place de chkconfig.la source
Package chkconfig is not available, but is referred to by another package.
Pour ceux d'entre nous qui utilisent Ubuntu sur SSH, je pense que la meilleure option est
rcconf
un programme à base de texte:Naviguez avec les touches de tabulation et les touches fléchées, appuyez sur la barre d'espacement pour activer / désactiver. Les modifications sont persistantes lors des redémarrages.
Capture d'écran empruntée à cet article de blog , qui montre également
sysv-rc-conf
- un outil similaire qui vous permet également de définir le niveau d'exécution. (Pour ceux qui se soucient assez des niveaux d'exécution pour souhaiter les changer :)Malheureusement, rcconf ne fonctionne pas avec upstart (services listés dans
/etc/init/*
), mais avec le mécanisme traditionnel (ls -l /etc/init.d/*
ceux qui ne sont pas des liens symboliques).Heureusement, de nombreux services pertinents pour ssh-ing sur un serveur (Apache, Tomcat, mdadm, boinc-client ...) n'ont pas encore été déplacés.
la source
update-rc.d
été modifiée et que certaines de ses fonctionnalités obsolètes ont été supprimées . Le bogue Debian n ° 727735 indique que rcconf n’a pas été modifié pour correspondre. Et non, rcconf ne fonctionne pas non plus avec systemd et ne s'applique donc à aucun des systèmes init par défaut pour Ubuntu Linux au cours de la dernière décennie.J'ai découvert qu'il y avait cet outil graphique, quelque chose comme BUM mais compatible avec Upstart:
Emplois-Admin
la source
Editer le fichier de configuration upstart existant (comme décrit ci-dessus) n’est pas une si bonne idée. Un paquet mis à jour pourrait fournir une configuration mise à jour, et vous deviez répéter vos modifications à plusieurs reprises.
En regardant,
man 5 init
on trouvera une solution plus appropriée: utiliser une configuration prioritaire. Petit exemple: Disons que nous avons un service appelé "foobar", il y aurait donc un fichier appelé/etc/init/foobar.conf
avec sa configuration upstart. Maintenant, vous ne voulez pas supprimer ce fichier, ni le modifier - mais vous ne voulez pas non plus que ce service soit exécuté? Donc placer un override fichier à côté:/etc/init/foobar.override
, contenant ( le cas échéant l' en- tête avec la description et) à la place lesstart on
/stop on
lignes que vous placez une ligne avec un seul mot:manual
. De cette façon, vous indiquez à upstart d'utiliser fondamentalement lefoobar.conf
, mais vous substituez la définition de démarrage pour ne démarrer ce service que s'il est appliqué manuellement (viaservice foobar start
notre exemple).la source
Il y a aussi le gestionnaire de démarrage .
À installer:
sudo apt-get install bum
Informations complémentaires: http://www.marzocca.net/linux/bum.html
la source
J'utilise Stacer. Il montre également les services et les processus. Une boîte à outils complète du système graphique. https://github.com/oguzhaninan/Stacer
la source