it-swarm-id.com

Alternatif Chkconfig untuk Server Ubuntu?

Saya sudah terbiasa mengelola startup layanan pada platform Redhat/RHEL menggunakan chkconfig meskipun itu sepertinya bukan cara Debian/Ubuntu - Bagaimana cara memperbarui informasi runlevel untuk layanan sistem di Ubuntu?

Akhirnya mencari yang setara dari:

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

Setara dengan chkconfig adalah update-rc.d

Setara yang Anda cari adalah

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

Lihat halaman berguna ini untuk informasi lebih lanjut atau lihat man update-rc.d

124
Richard Holloway

IMHO alternatif terbaik adalah sysv-rc-conf Untuk menginstal hanya perlu menjalankan perintah:

Sudo apt-get install sysv-rc-conf

Setelah terinstal jalankan perintah:

Sudo sysv-rc-conf

Anda dapat memeriksa atau menghapus centang opsi untuk memulai layanan pada tingkat eksekusi apa pun dan bahkan dapat menghentikan atau memulai layanan dari konsol ini. Ini adalah alat yang sangat diperlukan untuk mengaktifkan atau menonaktifkan aplikasi secara permanen untuk mem-boot ubuntu Anda. Jika Anda perlu perubahan cepat, maka Anda dapat menggunakan antarmuka CLI:

Misalnya untuk menghentikan ssh di level 3 dan 5 dari eksekusi:

sysv-rc-conf-off level 35 ssh

Atd untuk memulai di runlevel 2,3,4 dan 5:

sysv-rc-conf on atd

Jika Anda ingin tahu lebih banyak:

man sysv-rc-conf
53
jokerulez

Saat ini, tidak ada yang setara dengan rilis stabil untuk melakukan sesuatu dengan skrip pemula. Jacob Peddicord menulis layanan pekerjaan (backend daemon) dan jobs-admin (GTK + GUI yang berbicara dengannya) untuk proyek Google Summer of Code-nya. Paket lucunya adalah dalam PPA-nya . Mereka juga ada di Universe di Maverick. Tidak ada baris perintah front-end untuk layanan pekerjaan, hanya pekerjaan-admin.

10
maco

Coba ini:

apt-get install chkconfig

Ini berfungsi, setidaknya sebagai rilis Ubuntu 12.04.

10
Andrew Davison

Mari kita berjalan dari NOL ke Tujuan - bagaimana melakukannya dengan langkah demi langkah.

Langkah 1: mari kita menulis hello world

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

EOF

Langkah 2: mari kita buat server aplikasi hello world kami otomatis

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

Langkah 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
  • Jadi pada langkah 3, sistem saat boot, akan secara otomatis menjalankan server.py sebagai daemon dan membuatnya mudah untuk diotomatisasi

Semoga ini bisa membantu.

5
YumYumYum