Frage Chkconfig Alternative für Ubuntu Server?


Ich bin es gewohnt, Service-Startups auf Redhat / RHEL-Plattformen zu verwalten chkconfig obwohl das nicht der Debian / Ubuntu-Weg zu sein scheint - Wie aktualisiere ich Runlevel-Informationen für Systemdienste auf Ubuntu?

Suchen Sie nach den Äquivalenten von:

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

136
2017-08-14 12:24


Ursprung


Übrigens: Sie können apt-get install chkconfig das Paket auch auf ubuntu. Es ist jedoch seit Jahren kaputt, der folgende Symlink wird es (etwas) funktionieren lassen: ln -s /usr/lib/insserv/insserv /sbin/insserv - eckes


Antworten:


Das Äquivalent zu chkconfig ist update-rc.d

Die Äquivalente, die Sie suchen, sind

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

Sehen diese nützliche Seite Für weitere Informationen oder schauen Sie sich update-rc.d


121
2017-08-14 12:47



update-rc.d ist nur soll in Verpackungsschriften verwendet werden, nicht von Menschen. Es ist auch für Init-Skripte, die Ubuntu nicht verwendet. Ubuntu verwendet Upstart. - maco
"Bitte beachten Sie, dass dieses Programm für die Verwendung in Paketverwaltungs-Skripten konzipiert wurde und dementsprechend nur die sehr eingeschränkte Funktionalität besitzt, die für solche Skripte erforderlich ist. Systemadministratoren werden nicht dazu ermutigt, Runlevel mit update-rc.d zu verwalten. Sie sollten die Links bearbeiten direkt oder verwenden Sie Runlevel-Editoren wie sysv-rc-conf und bum. " Von der Manpage: manpages.ubuntu.com/manpages/hardy/man8/update-rc.d.8.html - maco
Ich akzeptiere diese Antwort, da die aktualisierten Manpages diese Warnung entfernt haben. manpages.ubuntu.com/manpages/lucid/man8/update-rc.d.8.html - Marco Ceppi♦
Das ändert nichts daran, dass Ubuntu heute nicht einmal SysV-Init-Skripte verwendet und update-rc.d nur für sie gedacht ist. - maco
Es gibt immer noch einige Sysv-Skripte und vor allem funktionieren sie auch mit Upstart. Wenn Sie also keine Zeit hatten, ein Skript zu konvertieren, könnten Sie es immer noch so verwenden. - eckes


Beste Alternative IMHO ist sysv-rc-conf Zur Installation muss nur der Befehl ausgeführt werden:

sudo apt-get install sysv-rc-conf

Sobald installiert, führe den Befehl aus:

sudo sysv-rc-conf

Sie können die Optionen aktivieren oder deaktivieren, um einen Dienst auf einer beliebigen Ausführungsebene zu starten, und möglicherweise sogar die Dienste von dieser Konsole aus anhalten oder starten. Es ist ein unverzichtbares Werkzeug, um Anwendungen dauerhaft zu aktivieren oder zu deaktivieren, um Ihr Ubuntu zu booten Wenn Sie eine schnelle Änderung benötigen, können Sie die CLI-Schnittstelle verwenden:

Zum Beispiel um ssh auf den Stufen 3 und 5 der Ausführung zu stoppen:

sysv-rc-conf-off level 35 ssh

Atd um in Runlevel 2,3,4 und 5 zu starten:

sysv-rc-conf on atd

Wenn Sie mehr wissen wollen:

man sysv-rc-conf

53
2017-07-10 08:22



Genau das habe ich gebraucht, außer ich sysv-rc-conf apache2 on / sysv-rc-conf apache2 off etc. - Adam K Dean
Das funktioniert für mich im Vergleich zu update-rc.d, das nach Programmskripten im Verzeichnis /etc/init.d/ gesucht hat, wo einige Programme wie vsftpd nicht installiert sind. - David Okwii
Arbeitete für mich auf Ubuntu 14.04 - Hashid Hameed
Sie haben einen Tippfehler: sysv-rc-conf-off level 35 ssh sollte sein sysv-rc-conf --level 35 ssh off - Slam
Geprüft am arbeiten Ubuntu 16.04LTS, woher update-rc.d nicht. - Sopalajo de Arrierez


Momentan gibt es in einer stabilen Version kein Äquivalent, um Dinge mit Upstart-Skripten zu erledigen. Jacob Peddicord hat jobservice (Backend-Daemon) und jobs-admin (GTK + GUI, das mit ihm kommuniziert) für sein Google Summer of Code-Projekt geschrieben. Lucid Pakete sind in seinem PPA. Sie existieren auch in Universe in Maverick. Es gibt noch kein Kommandozeilen-Frontend für Jobservice, nur Jobs-Admin.


10
2017-08-14 17:28





Versuche dies:

apt-get install chkconfig

Dies funktioniert zumindest als Ubuntu 12.04 Release.


10
2018-06-17 23:52



Funktioniert nicht am 12.10 - expert
haben 12.04, und apt-get install chkconfig gibt: "E: Paket 'chkconfig' hat keinen Installationskandidaten". Was ist in deiner /etc/apt/sources.list Datei? - John Little
Sieht so aus, als ob das Neueste genau veröffentlicht wurde: 12.04: 1.0-79.1-2 0 in http://us.archive.ubuntu.com/ubuntu/ precise/universe i386 Packages. Einige Korrekturen haben es nie zu einem Paket geschafft. - eckes
Kein Paket auf Ubuntu 14.04. Müssen wir eine andere Quelle hinzufügen? - Hashid Hameed


Lasst uns von ZERO zum Ziel gehen - wie es Schritt für Schritt geht.

Schritt 1: Lass uns eine Hallo Welt schreiben

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

EOF

Schritt 2: lassen Sie unsere Hallo Welt-Anwendung server.py automatisiert werden

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

Schritt 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
  • In Schritt 3 führt das System beim Booten automatisch den Server.py als Daemon aus und erleichtert die Automatisierung

Hoffe es hat geholfen.


5
2018-02-10 09:42



+1: Sehr nützliche Antwort, aber ich denke, es hat die falsche Frage. - Claris