146 votes

Alternative à Chkconfig pour Ubuntu Server ?

J'ai pris l'habitude de gérer des startups de services sur des plates-formes Redhat/RHEL à l'aide de chkconfig mais cela ne semble pas être la méthode utilisée par Debian/Ubuntu - Comment mettre à jour les informations de niveau d'exécution des services système sous Ubuntu ?

En fin de compte, nous recherchons les équivalents de :

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

125voto

Brett Veenstra Points 1447

L'équivalent de chkconfig es 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

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

55voto

jokerulez Points 551

La meilleure alternative, à mon avis, est sysv-rc-conf. Pour l'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 vous pouvez même arrêter ou démarrer les services à partir de cette console. C'est un outil indispensable pour activer ou désactiver des applications sur une manière permanente de 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

10voto

SitWalkStand Points 735

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

10voto

Andrew Davison Points 109

Essayez ça :

apt-get install chkconfig

Cela fonctionne, au moins à partir de la version Ubuntu 12.04.

5voto

Passons du ZERO à l'objectif - comment le faire, étape par étape.

Étape 1 : écrivons un hello world

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

EOF

Étape 2 : faisons notre application hello world server.py automatisée

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, ce qui facilitera l'automatisation.

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

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