75 votes

Différence entre systemctl init.d et service

Je suis nouveau dans le monde de Linux et je me suis testé sur une instance Amazon Lightsail (Ubuntu 16.04 LTS).

En parcourant les nombreux guides que j'ai trouvés, je vois que les gens utilisent différentes commandes pour démarrer/arrêter/redémarrer/recharger/vérifier l'état d'un service. En particulier celles-ci ;

sudo systemctl status apache2.service
sudo /bin/systemctl status apache2.service
sudo /etc/init.d/apache2 status
sudo service apache2 status

Toutes les commandes ci-dessus fonctionnent.

  1. Dois-je préférer une commande à une autre ?
  2. Si oui, pourquoi ?
  3. Y a-t-il d'autres commandes que je dois connaître ?

L'utilisation de init.d dans Monit causait des problèmes lorsque je voulais utiliser l'option status (status indiquera que le service est hors ligne alors qu'il était en fait en ligne -- redémarré par Monit). Changer le code dans Monit de inid.d à /bin/systemctl a réglé le problème.

Il semble que l'utilisation de init.d fournisse plus d'informations sur ce qui s'est passé que les autres. Si je dois utiliser l'une des autres commandes, est-il possible de leur faire afficher plus d'informations sur ce qui a été fait ?

ubuntu@ip-172-26-12-245:~$ sudo systemctl restart pure-ftpd.service
ubuntu@ip-172-26-12-245:~$ sudo /bin/systemctl restart pure-ftpd.service
ubuntu@ip-172-26-12-245:~$ sudo /etc/init.d/pure-ftpd restart
[ ok ] Restarting pure-ftpd (via systemctl): pure-ftpd.service.
ubuntu@ip-172-26-12-245:~$ sudo service pure-ftpd restart
ubuntu@ip-172-26-12-245:~$

Je tiens à remercier d'avance tous ceux qui ont pris le temps de lire et de répondre à cette question.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X