ti-enxame.com

Chkconfig alternativa para o Ubuntu Server?

Tornei-me muito acostumado a gerenciar startups de serviço em plataformas Redhat/RHEL usando chkconfig, embora isso não pareça ser da maneira Debian/Ubuntu - Como atualizo informações de nível de execução para serviços do sistema no Ubuntu?

Em última análise, procurando os equivalentes de:

chkconfig --add <service>
chkconfig --level 345 <service> on
chkconfig --del <service>
144
Marco Ceppi

O equivalente a chkconfig é update-rc.d

Os equivalentes que você procura são

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

Veja esta página útil para mais informações ou confira man update-rc.d

124
Richard Holloway

Melhor alternativa IMHO é sysv-rc-conf Para instalar basta executar o comando:

Sudo apt-get install sysv-rc-conf

Uma vez instalado, execute o comando:

Sudo sysv-rc-conf

Você pode marcar ou desmarcar as opções para iniciar um serviço em qualquer nível de execução e pode até interromper ou iniciar os serviços a partir desse console. É uma ferramenta indispensável para ativar ou desativar aplicativos de forma permanente para inicializar o Ubuntu Se você precisar de uma mudança rápida, então você pode usar a interface CLI:

Por exemplo, para parar o ssh nos níveis 3 e 5 da execução:

sysv-rc-conf-off level 35 ssh

Atd para iniciar nos runlevels 2,3,4 e 5:

sysv-rc-conf on atd

Se você quiser saber mais:

man sysv-rc-conf
53
jokerulez

No momento, não há equivalente em uma versão estável para fazer coisas com scripts do Upstart. Jacob Peddicord escreveu o jobservice (backend daemon) e o jobs-admin (GTK + GUI que fala com ele) para o seu projeto Google Summer of Code. Pacotes lúcidos são em seu PPA . Eles também existem no Universo em Maverick. Não há front-end de linha de comando para jobservice, apenas jobs-admin.

10
maco

Tente isto:

apt-get install chkconfig

Isso funciona, pelo menos, como o lançamento do Ubuntu 12.04.

10
Andrew Davison

Vamos andar de zero a meta - como fazer isso passo a passo.

Passo 1: vamos escrever um olá mundo

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

EOF

Passo 2: deixa o nosso aplicativo hello world server.py automatizado

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

passo 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
  • Então, no passo 3, o sistema na inicialização, executará automaticamente o server.py como daemon e tornará mais fácil automatizar

Espero que tenha ajudado.

5
YumYumYum