Je me suis habitué à gérer les démarrages de services sur les plates-formes Redhat/RHEL à l'aide de chkconfig
bien que cela ne semble pas être la méthode Debian/Ubuntu - Comment mettre à jour les informations de niveau d'exécution des services système sur Ubuntu?
À la recherche ultime des équivalents de:
chkconfig --add <service>
chkconfig --level 345 <service> on
chkconfig --del <service>
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
Sysv-rc-conf est la meilleure alternative. Pour l’installation, il suffit d’exécuter la commande:
Sudo apt-get install sysv-rc-conf
Une fois installé, lancez la commande:
Sudo sysv-rc-conf
Vous pouvez cocher ou décocher les options permettant de démarrer un service à n'importe quel niveau d'exécution et même arrêter ou démarrer les services à partir de cette console. C'est un outil indispensable pour activer ou désactiver les applications de manière permanente au démarrage de votre ubuntu. Si vous avez besoin d'une modification 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
Pour démarrer 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
À l'heure actuelle, il n'y a pas d'équivalent dans une version stable pour faire des choses avec des scripts Upstart. Jacob Peddicord a écrit jobservice (démon backend) et jobs-admin (interface graphique GTK + qui lui parle) pour son projet Google Summer of Code. Les paquets Lucid sont dans son PPA . Ils existent également dans l’Univers de Maverick. Il n'y a pas encore de serveur en ligne de commande pour jobservice, juste jobs-admin.
Essaye ça:
apt-get install chkconfig
Cela fonctionne, au moins à partir de la version Ubuntu 12.04.
Permet de marcher de zéro à objectif - comment le faire étape par étape.
Étape 1: permet d'é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 application hello world server.py
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
J'espère que ça a aidé.