Vraag Chkconfig alternatief voor Ubuntu Server?


Ik ben er erg aan gewend geraakt om service startups op Redhat / RHEL-platforms te gebruiken chkconfig hoewel dat niet de manier lijkt te zijn waarop Debian / Ubuntu werkt - Hoe kan ik runlevel-informatie updaten voor systeemservices op Ubuntu?

Uiteindelijk op zoek naar de equivalenten van:

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

136
2017-08-14 12:24


oorsprong


Tussen haakjes: dat kan apt-get install chkconfig het pakket ook op ubuntu. Het is echter verbroken sinds jaren, de volgende symlink zal het (enigszins) laten werken: ln -s /usr/lib/insserv/insserv /sbin/insserv - eckes


antwoorden:


Het equivalent van chkconfig is update-rc.d

De equivalenten die je zoekt zijn

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

Zien deze nuttige pagina voor meer informatie of bekijk man update-rc.d


121
2017-08-14 12:47



update-rc.d is enkel en alleen bedoeld om te worden gebruikt in verpakkingsscripts, niet door mensen. Het is ook voor init-scripts, die Ubuntu niet gebruikt. Ubuntu gebruikt Upstart. - maco
"Houd er rekening mee dat dit programma is ontworpen voor gebruik in scripts voor pakketonderhoud en daarom slechts de zeer beperkte functionaliteit heeft die vereist is voor dergelijke scripts. Systeembeheerders worden niet aangemoedigd om update-rc.d te gebruiken om runlevels te beheren. direct of gebruik runlevel-editors zoals sysv-rc-conf en bum in plaats daarvan. " Van de manpage: manpages.ubuntu.com/manpages/hardy/man8/update-rc.d.8.html - maco
Ik accepteer dit antwoord omdat de bijgewerkte manpagina's die waarschuwing hebben verwijderd. manpages.ubuntu.com/manpages/lucid/man8/update-rc.d.8.html - Marco Ceppi♦
Wat nog steeds niets verandert aan het feit dat Ubuntu tegenwoordig niet eens SysV init-scripts gebruikt en update-rc.d alleen voor hen is. - maco
Er worden nog steeds een aantal sysv-scripts gebruikt en vooral ze werken ook met parvenu's. Dus als je geen tijd had gehad om een ​​script te converteren, zou je het nog steeds op deze manier kunnen gebruiken. - eckes


Beste alternatief IMHO is sysv-rc-conf Om te installeren hoef je alleen maar de opdracht uit te voeren:

sudo apt-get install sysv-rc-conf

Na de installatie voert u het commando uit:

sudo sysv-rc-conf

U kunt de opties voor het starten van een service op elk uitvoeringsniveau in- of uitschakelen en de services mogelijk zelfs stoppen of starten via deze console. Het is een onmisbaar hulpmiddel om toepassingen permanent in of uit te schakelen om uw ubuntu op te starten Als u snel wilt wijzigen, kunt u de CLI-interface gebruiken:

Bijvoorbeeld om ssh te stoppen op niveau 3 en 5 van uitvoering:

sysv-rc-conf-off level 35 ssh

Atd om te starten in runlevels 2,3,4 en 5:

sysv-rc-conf on atd

Als u meer wilt weten:

man sysv-rc-conf

53
2017-07-10 08:22



Dit is precies wat ik nodig had, behalve ik sysv-rc-conf apache2 on / sysv-rc-conf apache2 off enz. - Adam K Dean
Dit werkt voor mij in vergelijking met update-rc.d die programma-scripts zocht in /etc/init.d/ directory waar sommige programma's zoals vsftpd niet zijn geïnstalleerd. - David Okwii
Werkte voor mij op Ubuntu 14.04 - Hashid Hameed
Je hebt typefout: sysv-rc-conf-off level 35 ssh zou moeten zijn sysv-rc-conf --level 35 ssh off - Slam
Getest aan het werken Ubuntu 16.04LTS, waar update-rc.d deed niet. - Sopalajo de Arrierez


Op dit moment is er geen equivalent voor een stabiele release om dingen te doen met Upstart-scripts. Jacob Peddicord schreef jobservice (backend daemon) en jobs-admin (GTK + GUI die erover praat) voor zijn Google Summer of Code-project. Lucid-pakketten zijn in zijn PPA. Ze bestaan ​​ook in Universe in Maverick. Er is nog geen opdrachtregel front-end voor jobservice, alleen jobs-admin.


10
2017-08-14 17:28





Probeer dit:

apt-get install chkconfig

Dit werkt, althans als Ubuntu 12.04-release.


10
2018-06-17 23:52



Werkt niet op 12.10 - expert
hebben 12.04 en apt-get installeren chkconfig geeft: "E: Pakket 'chkconfig' heeft geen installatiekandidaat". Wat zit er in je bestand /etc/apt/sources.list? - John Little
Lijkt erop dat de laatste is gepubliceerd voor precieze: 12.04: 1.0-79.1-2 0 in http://us.archive.ubuntu.com/ubuntu/ precise/universe i386 Packages. Sommige oplossingen zijn nooit in een pakket opgenomen. - eckes
Geen pakket op Ubuntu 14.04. Moeten we nog een bron toevoegen? - Hashid Hameed


Laten we van ZERO naar Goal lopen - hoe het te doen met stap voor stap.

Stap 1: laat een hello-wereld schrijven

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

EOF

Stap 2: laten we onze hello world application server.py geautomatiseerd maken

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

Stap 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
  • Dus in stap 3 zal het systeem bij het opstarten automatisch de server.py uitvoeren als daemon en het gemakkelijk automatiseren

Ik hoop dat het geholpen heeft.


5
2018-02-10 09:42



+1: Zeer nuttig antwoord, maar ik denk dat er een verkeerde vraag aan is verbonden. - Claris