Quel est l'équivalent systemctl

30

Je convertis un package de .rpm en .deb en utilisant ce tutoriel . Cependant, pour tester et déboguer l'application, je dois l'exécuter. Le fichier Lisez-moi du programme explique comment l'exécuter en tant que service avec:

systemctl enable progname.service
systemctl start progname.service

Quel est l'équivalent sur ubuntu pour ces commandes?

Marnaw
la source
sudo service network-manager restart c'est ce que je cherchais quand j'ai trouvé ça.
Martin Thoma
Depuis 2018, Ubuntu utilise le nouveau systemd systemctl(comme tout système supérieur à Ubuntu 15.04, Debian 8, CentOS 7, Fedora 15 ...). L'ancien /usr/sbin/serviceutilitaire appelle systemctlsi / lorsque le système exécute systemd.
michael

Réponses:

12

Ubuntu planifie / développe actuellement pour utiliser systemd à l'avenir. Voir les liens suivants pour plus d'informations: Vivid passera au démarrage avec systemd ... et Notes de version: Gestion du démarrage et des services

J'utilise 14.04.

Vous pouvez utiliser la commande plus native update-rc.d. Consultez la page de manuel.

Activation d'un service avec des valeurs par défaut (voir la page de manuel):

sudo update-rc.d foo_service defaults

Désactiver un service:

sudo update-rc.d foo_service remove

Notez que pour supprimer sans message d'erreur, le fichier foo_service ne doit pas être présent. Cependant, vous pouvez forcer:

sudo update-rc.d -f foo_service remove
Ely
la source
4
Il n'y a peut-être rien à ce sujet. 15.04 utilise systemd.
muru
@muru Dou vous avez une référence s'il vous plait? N'hésitez pas à modifier ma réponse et à en informer les gens.
Ely
1
l'article annonçant le changement pendant le développement: lists.ubuntu.com/archives/ubuntu-devel-announce/2015-March/… , les notes de version de la version finale: wiki.ubuntu.com/VividVervet/…
muru
5

systemctl est l'utilitaire de contrôle de systemd:

http://www.freedesktop.org/software/systemd/man/systemctl.html

Notez qu'Ubuntu n'utilise pas systemd, il utilise upstart, qui fait en principe quelques-unes des mêmes choses, mais a des concepts différents.

Sans beaucoup de connaissances sur systemd, et sur la base de ce que j'ai lu dans le document que j'ai posté, je pense que vous n'avez pas besoin "d'activer" un service. Le simple fait de déposer le fichier .conf pour votre service dans / etc / init devrait en faire prendre conscience à upstart.

C'est le noeud du problème, cependant: le fichier de configuration systemd pour votre service ne fonctionnera pas sans modification sur Ubuntu, vous devez le "traduire" en une version équivalente pour Upstart. Voici la documentation pour upstart:

http://upstart.ubuntu.com/cookbook/

Une fois que vous disposez d'un fichier .conf approprié, vous pouvez démarrer un service (équivalent, je pense, à systemctl start) en utilisant:

start your-service
roadmr
la source
2
Le problème est, à partir 13.10, Ubuntu fait le logind de l' utilisation systemd, qui , par défaut suspend un ordinateur portable lorsque le couvercle est fermé. Si vous souhaitez qu'il verrouille l'écran avant que cela ne se produise, vous devez suspendre un service systemd à la fermeture du couvercle, et pour ce faire, vous semblez avoir besoin systemctl. Voir forum.xfce.org/viewtopic.php?id=8411 et bbs.archlinux.org/viewtopic.php?id=148829 par exemple.
Douglas Bagnall