Dans Windows, j'ai le gestionnaire de services, où je vois tous les services système, qui peut être démarré à travers Windows lui-même, je configure l'utilisateur qu'il utilise, la gestion des droits est là et je peux transmettre des variables et d'autres informations aux services. Je peux les nommer et créer des services en double pour un programme, etc. J'ai donc un outil de gestion principal dans Windows.
Comment puis-je faire la même chose sous Linux? Comment puis-je déclencher l'exécution de "svnserve" au démarrage, ou comment puis-je configurer les services pour qu'ils s'exécutent dans un contexte particulier. Comment puis-je voir tous les services "programmés"?
server
commande sur Debian, consultez unix.stackexchange.com/q/226089/130402Réponses:
Il existe actuellement 3 principaux systèmes init utilisés par linux. Il y a quelques années, il n'y en avait qu'un, SysVinit. Cependant, SysVinit manquait cruellement de fonctionnalités telles que la représentation graphique de la dépendance des services. Elle est donc désormais obsolète dans la plupart des distributions. Actuellement, la plupart des distributions passent à systemd . Bien qu'il y ait aussi du débutant .
Mais voici la réponse à votre question pour chacun des 3 systèmes init:
SysVinit
SysVinit actuellement utilisé par Debian et RedHat. Bien que la prochaine version de RedHat (7) utilise systemd.
Le moyen universel d'activer les services SysVinit au démarrage consiste à les lier de manière symbolique entre
/etc/rc3.d
(ou/etc/rc2.d
). Tous les services peuvent être trouvés dans/etc/init.d
. Notez cependant que les distributions auront souvent leur propre outil pour gérer ces fichiers, et que cet outil devrait plutôt être utilisé. (Fedora / RedHat aservice
etchkconfig
, Ubuntu aupdate-rc.d
)Liste des services:
Démarrer le service:
ou
Aire d'autoroute:
ou
Activer le service:
(le
S95
sert à spécifier l'ordre. S01 commencera avant S02, etc.)Désactiver le service:
Systemd
La distribution la plus notable utilisant systemd est Fedora. Bien qu'il soit utilisé par beaucoup d'autres. De plus, avec Debian ayant choisi de passer à systemd avec updart, il deviendra le système de facto upstart pour la plupart des distributions (ubuntu a déjà annoncé qu’elles abandonneraient upstart pour systemd).
Liste des services:
Démarrer le service:
Aire d'autoroute:
Activer le service:
Désactiver le service:
Parvenu
Upstart a été développé par les gens d'Ubuntu. Mais après que Debian ait décidé d’utiliser Systemd , Ubuntu a annoncé qu’ils abandonneraient le système .
Upstart a également été brièvement utilisé par RedHat, car il est présent dans RHEL-6, mais il n’est pas couramment utilisé.
Liste des services:
Démarrer le service:
Aire d'autoroute:
Activer le service:
2 façons malheureusement:
Il y aura un fichier
/etc/default/{SERVICENAME}
qui contient une ligneENABLED=...
. Changer cette ligne àENABLED=1
.Il y aura un fichier
/etc/init/{SERVICENAME}.override
. Assurez-vous qu'il contientstart
(ou est totalement absent), pasmanual
.Désactiver le service:
Remarque: il existe également le système d'initiation 'OpenRC' utilisé par Gentoo. Actuellement, Gentoo est la seule distribution qui l'utilise, et son utilisation n'est pas envisagée, ni prise en charge par une autre distribution. Donc, je ne couvre pas son utilisation (bien que si l’opinion est la même, je peux l’ajouter).
la source
chkconfig
etupdate-rc.d
sont mentionnés. Voir le deuxième paragraphe sous SysVinit :-)Différentes distributions utilisent différents mécanismes pour gérer les services. Le logiciel de gestion des services s'appelle init , après le nom traditionnel du tout premier processus (avec le processus ID 1), chargé de démarrer les autres.
Debian utilise la variante traditionnelle SysVinit de init. Sous ce système, il existe une collection de scripts dans le répertoire
/etc/init
(cet emplacement et un autre peuvent varier légèrement entre les distributions utilisant SysVinit). Ces scripts ne sont pas appelés directement, mais par le biais de liens symboliques dans des répertoires/etc/rc?.d
. C'est la présence et le nom de ces liens symboliques qui déterminent le démarrage des services. Pour plus de détails, lisez le chapitre sur init dans la référence Debian .Jetez un coup d'oeil
/etc/rc?.d
pour voir quels services sont déjà présents. La lettre ou le chiffre avant le point est le niveau d'exécution; les entrées dont le nom commence parS
sont exécutées avec l'argumentstart
lors de la saisie du niveau d'exécution, et les entrées dont le nom commence parK
sont exécutées lors de la sortie du niveau d'exécution. La séquence normale du niveau d'exécution est la suivante: S au démarrage (ainsi/etc/rcS.d/S*
exécutés), puis 2 (donc/etc/rc2.d/S*
exécutés). Au moment de l'arrêt, ils/etc/rc2.d/K*
sont exécutés, puis le niveau d'exécution passe à 0 (ou à 6 pour un redémarrage).En bref, si vous voulez créer un script de démarrage pour un nouveau service:
/etc/init.d
. Ce script doit accepter un argument qui peut êtrestart
,stop
,force-reload
,restart
ou ( en option)reload
oustatus
. La différence entrereload
etrestart
estrestart
équivalente àstop
suivie destart
pendant lereload
rechargement de la configuration sans rien arrêter (si le service le prend en charge);force-reload
faitreload
si disponible etrestart
sinon. Voir les fichiers existants et Faire en sorte que les scripts soient exécutés au démarrage avec Debian pour des exemples.update-rc.d
pour créer des liens symboliques pour démarrer et arrêter votre service. La plupart des services fonctionnent dans les niveaux d'exécution 2, 3, 4 et 5.Notez que pour fournir un accès à svn, il peut être plus facile de configurer Apache et d’utiliser le protocole HTTP ou HTTPS. Cela présente l’avantage supplémentaire de permettre une navigation rapide dans le référentiel via un navigateur Web.
la source
Un fond Unix traditionnel, les services n’ont rien de spécial. Les services sont juste des processus, mais à deux exceptions près: ils n'ont pas besoin de terminal et ils démarrent au démarrage. La manière dont ils démarrent au démarrage dépend de init (qui peut être sysv init, bsd init, upstart, systemd ou autre chose; consultez votre page de manuel pour init) et si vous utilisez un wrapper pour la tâche ou pour la configuration init. Rien ne vous empêche d’exécuter un service à partir d’un terminal, c’est en fait un test courant.
la source