Question Alternative Chkconfig pour Ubuntu Server?


Je me suis habitué à gérer les démarrages de service sur les plates-formes Redhat / RHEL en utilisant chkconfig Bien que cela ne semble pas être la manière Debian / Ubuntu - Comment mettre à jour les informations de niveau d'exécution pour les services système sur Ubuntu?

En fin de compte à la recherche des équivalents de:

chkconfig --add <service>
chkconfig --level 345 <service> on
chkconfig --del <service>

136
2017-08-14 12:24


origine


BTW: vous pouvez apt-get install chkconfig le paquet sur Ubuntu aussi. Cependant, il est cassé depuis des années, le lien symbolique suivant le rendra (un peu) fonctionnel: ln -s /usr/lib/insserv/insserv /sbin/insserv - eckes


Réponses:


L'équivalent de chkconfig est update-rc.d

Les équivalents que vous recherchez sont

update-rc.d <service> defaults
update-rc.d <service> start 20 3 4 5
update-rc.d -f <service>  remove

Voir cette page utile pour plus d'informations ou consultez man update-rc.d


121
2017-08-14 12:47



update-rc.d est seulement destiné à être utilisé dans des scripts de packaging, pas par des humains. C'est aussi pour les scripts d'initialisation, qu'Ubuntu n'utilise pas. Ubuntu utilise Upstart. - maco
"Veuillez noter que ce programme a été conçu pour être utilisé dans les scripts du responsable des packages et que, par conséquent, seules les fonctionnalités très limitées requises par ces scripts sont requises. Les administrateurs système ne sont pas encouragés à utiliser update-rc.d pour gérer les niveaux d'exécution. directement ou utilisez des éditeurs de niveau d'exécution tels que sysv-rc-conf et bum à la place. " De la page de manuel: manpages.ubuntu.com/manpages/hardy/man8/update-rc.d.8.html - maco
J'accepte cette réponse car les pages de manuel mises à jour ont supprimé cet avertissement. manpages.ubuntu.com/manpages/lucid/man8/update-rc.d.8.html - Marco Ceppi♦
Ce qui ne change toujours pas le fait qu'Ubuntu n'utilise même plus les scripts d'initialisation SysV et que update-rc.d est uniquement pour eux. - maco
Il y a encore des scripts sysv utilisés et surtout ils fonctionnent aussi avec upstart. Donc, si vous n'avez pas eu le temps de convertir un script, vous pouvez toujours l'utiliser de cette façon. - eckes


La meilleure alternative IMHO est sysv-rc-conf Pour installer, il suffit d'exécuter la commande:

sudo apt-get install sysv-rc-conf

Une fois installé, exécutez la commande:

sudo sysv-rc-conf

Vous pouvez cocher ou décocher les options pour démarrer un service à n'importe quel niveau d'exécution et même arrêter ou démarrer les services depuis cette console. C'est un outil indispensable pour activer ou désactiver des applications de manière permanente pour démarrer votre ubuntu. Si vous avez besoin d'un changement rapide, vous pouvez utiliser l'interface CLI:

Par exemple pour arrêter ssh aux niveaux 3 et 5 d'exécution:

sysv-rc-conf-off level 35 ssh

Atd pour commencer dans les niveaux d’exécution 2,3,4 et 5:

sysv-rc-conf on atd

Si vous voulez en savoir plus:

man sysv-rc-conf

53
2017-07-10 08:22



C'est exactement ce dont j'avais besoin, sauf que je l'ai fait sysv-rc-conf apache2 on / sysv-rc-conf apache2 off etc. - Adam K Dean
Cela fonctionne pour moi par rapport à update-rc.d qui recherchait des scripts de programme dans le répertoire /etc/init.d/ où certains programmes comme vsftpd ne sont pas installés. - David Okwii
Travaillé pour moi sur Ubuntu 14.04 - Hashid Hameed
Vous avez une faute de frappe: sysv-rc-conf-off level 35 ssh devrait être sysv-rc-conf --level 35 ssh off - Slam
Testé en travaillant sur Ubuntu 16.04LTS, où update-rc.d n'a pas. - Sopalajo de Arrierez


Pour l'instant, il n'y a pas d'équivalent sur une version stable pour faire des choses avec les scripts Upstart. Jacob Peddicord a écrit pour son projet Google Summer of Code le service de jobs (démon backend) et jobs-admin (interface graphique GTK +). Les paquets Lucid sont dans son PPA. Ils existent aussi dans Universe dans Maverick. Il n'y a pas encore de ligne de commande frontale pour JobService, juste jobs-admin.


10
2017-08-14 17:28





Essaye ça:

apt-get install chkconfig

Cela fonctionne, au moins en tant que version Ubuntu 12.04.


10
2018-06-17 23:52



Ne fonctionne pas le 12.10 - expert
avoir 12.04, et apt-get install chkconfig donne: "E: Package 'chkconfig' n'a pas de candidat à l'installation". Que contient votre fichier /etc/apt/sources.list? - John Little
On dirait que le dernier a été publié avec précision: 12.04: 1.0-79.1-2 0 dans http://us.archive.ubuntu.com/ubuntu/ precise/universe i386 Packages. Certaines corrections n’ont jamais été intégrées dans un package. - eckes
Pas de paquet sur Ubuntu 14.04. Avons-nous besoin d'ajouter une autre source? - Hashid Hameed


Permet de passer de zéro à objectif - comment le faire étape par étape.

Étape 1: laisse écrire un monde bonjour

cat >> /var/tmp/python/server.py <<\EOF
#/usr/bin/python
import time
while True:
  print "hello> YES Bello"
  time.sleep(30)

EOF

Étape 2: permet d'automatiser notre serveur d'application world.py Bonjour

cat >> /var/tmp/myserver.sh <<\EOF
#!/bin/sh
script='/var/tmp/python/server.py'
export DISPLAY=:0.0 && /usr/bin/python $script &

EOF
chmod +x /var/tmp/myserver.sh

cat >> /etc/init.d/myserver <<\EOF

#! /bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/var/tmp/myserver.sh
PIDFILE=/var/run/myserver.pid

test -x $DAEMON || exit 0

. /lib/lsb/init-functions

case "$1" in
  start)
     log_daemon_msg "Starting feedparser"
     start_daemon -p $PIDFILE $DAEMON
     log_end_msg $?
   ;;
  stop)
     log_daemon_msg "Stopping feedparser"
     killproc -p $PIDFILE $DAEMON
     PID=`ps x |grep server.py | head -1 | awk '{print $1}'`
     kill -9 $PID       
     log_end_msg $?
   ;;
  force-reload|restart)
     $0 stop
     $0 start
   ;;
  status)
     status_of_proc -p $PIDFILE $DAEMON atd && exit 0 || exit $?
   ;;
 *)
   echo "Usage: /etc/init.d/atd {start|stop|restart|force-reload|status}"
   exit 1
  ;;
esac

exit 0


EOF
chmod +x /etc/init.d/myserver
chmod -R 777 /etc/init.d/myserver

Étape 3: 

$ update-rc.d myserver defaults
update-rc.d: warning: /etc/init.d/myserver missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 Adding system startup for /etc/init.d/myserver ...
   /etc/rc0.d/K20myserver -> ../init.d/myserver
   /etc/rc1.d/K20myserver -> ../init.d/myserver
   /etc/rc6.d/K20myserver -> ../init.d/myserver
   /etc/rc2.d/S20myserver -> ../init.d/myserver
   /etc/rc3.d/S20myserver -> ../init.d/myserver
   /etc/rc4.d/S20myserver -> ../init.d/myserver
   /etc/rc5.d/S20myserver -> ../init.d/myserver
  • Ainsi, à l'étape 3, le système au démarrage exécutera automatiquement le fichier server.py en tant que démon et le rendra facile à automatiser.

J'espère que ça a aidé.


5
2018-02-10 09:42



+1: Réponse très utile mais je pense que la mauvaise question est attachée. - Claris