Ubuntu Sunucusu için Chkconfig alternatifi?


144

Redhat / RHEL platformlarında servis başlatma işlemlerini chkconfigDebian / Ubuntu yolu gibi görünmese de kullanarak yönetmeye çok alıştım - Ubuntu'daki sistem servisleri için runlevel bilgilerini nasıl güncellerim?

Sonuçta eşdeğerleri arıyor:

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

1
Btw: apt-get install chkconfigubuntu da paketi yapabilirsiniz . Bununla birlikte, yıllardan beri bozulmuştur, aşağıdaki sembolik link (biraz) çalışmasını ln -s /usr/lib/insserv/insserv /sbin/insserv
sağlayacaktır

Yanıtlar:


125

Eşdeğer chkconfigolduğunuupdate-rc.d

Aradığınız eşdeğerler

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

Daha fazla bilgi için bu kullanışlı sayfaya bakın veya man update-rc.d dosyasını inceleyin.


5
update-rc.d, insanlar tarafından değil , sadece betik betiklerinde kullanılır. Aynı zamanda Ubuntu'nun kullanmadığı init betikleri içindir. Ubuntu Upstart'ı kullanır.
maco

11
"Lütfen bu programın paket yürütücü komut dosyalarında kullanılmak üzere tasarlandığını ve buna göre, yalnızca bu tür komut dosyalarının gerektirdiği çok sınırlı işlevselliğe sahip olduğunu unutmayın. Sistem yöneticileri, çalışma düzeylerini yönetmek için update-rc.d'yi kullanmaya teşvik edilmez. doğrudan veya sysv-rc-conf ve bunun yerine serseri gibi runlevel editörlerini kullanın. " : Manpage itibaren manpages.ubuntu.com/manpages/hardy/man8/update-rc.d.8.html
Maco

4
Bu cevabı kabul ediyorum, çünkü güncellenmiş kılavuz sayfaları bu uyarıyı kaldırdı. manpages.ubuntu.com/manpages/lucid/man8/update-rc.d.8.html
Marco Ceppi

4
Bu da Ubuntu'nun bugünlerde SysV init betiklerini kullanmadığı gerçeğini değiştirmiyor ve update-rc.d sadece onlar için.
maco

1
Hala kullanılan bazı sysv betikleri var ve özellikle de starttart ile çalışıyorlar. Bir betiği dönüştürme zamanınız olmadıysa, yine de bu şekilde kullanabilirsiniz.
saat

53

En iyi alternatif IMHO, sysv-rc-conf'dir. Yüklemek için sadece komutu çalıştırmanız gerekir:

sudo apt-get install sysv-rc-conf

Kurulduktan sonra komutu çalıştırın:

sudo sysv-rc-conf

Herhangi bir yürütme düzeyinde bir hizmeti başlatmak için seçenekleri işaretleyebilir veya işaretini kaldırabilir ve hatta hizmetleri bu konsoldan durdurabilir veya başlatabilirsiniz. Ubuntu'nuzu başlatmak için kalıcı bir şekilde uygulamaları etkinleştirmek veya devre dışı bırakmak için vazgeçilmez bir araçtır. Hızlı bir değişiklik yapmanız gerekiyorsa, CLI arayüzünü kullanabilirsiniz:

Örneğin, yürütmenin 3. ve 5. düzeylerinde ssh'yi durdurmak için:

sysv-rc-conf-off level 35 ssh

2,3,4 ve 5 çalışma seviyelerinde başlayacak Atd:

sysv-rc-conf on atd

Daha fazla bilgi edinmek istiyorsanız:

man sysv-rc-conf

Bu benim yaptığım dışında ben gerekli tam olarak ne sysv-rc-conf apache2 on/ sysv-rc-conf apache2 offvs
Adam K Dean

Bu benim için çalışıyor / vsc / init.d/ dizininde vsftpd gibi bazı programların kurulu olmadığı program komut dosyalarını arayan update-rc.d'yi karşılaştırdım.
David Okwii

Benim için Ubuntu'da çalıştı
14.04

Yazım hatası: sysv-rc-conf-off level 35 ssholmalısysv-rc-conf --level 35 ssh off
Slam

Ubuntu 16.04LTS üzerinde çalışan test edildi , nerede update-rc.dolmadı.
Sopalajo de Arrierez,

10

Şu anda, Upstart betikleriyle bir şeyler yapmak için kararlı bir sürümde eşdeğer yoktur. Jacob Peddicord, Google Summer of Code projesi için iş ilanı (arka uç daemon) ve iş yöneticisi (bununla konuşan GTK + GUI) yazdı. Bilinen paketler PPA'sında . Ayrıca Maverick'teki Evrende de varlar. İş servisi için henüz bir komut satırı yok, sadece jobs-admin.


10

Bunu dene:

apt-get install chkconfig

Bu, en azından Ubuntu 12.04 sürümü olarak çalışır.


6
12.10 çalışmıyor
Uzman

12.04 var ve apt-get install chkconfig şunları verir: "E: Paket 'chkconfig' kurulum adayı yok". /Etc/apt/sources.list dosyanızda neler var?
John Little

En son kesin olarak yayınlanmış gibi görünüyor: 12.04: 1.0-79.1-2 0 http://us.archive.ubuntu.com/ubuntu/ precise/universe i386 Packages. Bazı düzeltmeler bir pakette asla yapılmadı.
saat

2
Ubuntu 14.04'te paket yok. Başka bir kaynak eklememiz gerekiyor mu?
Hashid,

5

Sıfırdan hedefe doğru yürüyelim - adım adım nasıl yapılır.

1. Adım: merhaba bir dünya yazalım

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

EOF

Adım 2: Merhaba dünya uygulamamızı server.py olarak otomatikleştirelim

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

Aşama 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
  • Böylece 3. adımda, açılışta sistem otomatik olarak server.py dosyasını daemon olarak çalıştıracak ve otomatikleştirmeyi kolaylaştıracaktır.

Umarım yardım etti.


2
+1: Çok faydalı bir cevap ama bence kendisine yanlış bir soru eklenmiş.
Claris
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.