Wie Dienste gestartet werden, hängt sehr stark von der Linux-Distribution ab. Bitte teilen Sie uns mit, was Sie erreichen möchten (und auf welcher Distribution und in welcher Desktop-Umgebung), denn ich denke, Sie denken derzeit wahrscheinlich nicht über das richtige Problem nach.
Xenoterracide
Antworten:
23
Um einen Dienst ohne oder vor dem Anmelden am System auszuführen (dh "beim Booten"), müssen Sie ein Startskript erstellen und es der Bootsequenz hinzufügen.
Ein Dienstskript besteht aus drei Teilen: Starten, Stoppen und Neustarten.
Die Grundstruktur eines Service-Skripts lautet:
Sobald Sie das Skript nach Ihren Wünschen angepasst haben
, platzieren Sie es einfach in /etc/init.d/. Fügen Sie es dem Systemdienst-Startprozess hinzu (unter Fedora bin ich kein Ubuntu-Benutzer,> D):
chkconfig -add <ServiceName>
Der Dienst wird dem Systemstartprozess hinzugefügt, und Sie müssen ihn nicht erneut manuell starten.
Beachten Sie, dass beim Starten, Stoppen und Neustarten in der Regel einfache Init-Skripte ausreichen. Sie möchten wahrscheinlich auch eine 'status'-Aktion einbinden, was in Debian und anderen Distributionen, die status_of_proc () in ihrem init-functions-Paket enthalten, einfach ist. Gut verwaltete Pakete enthalten alle Funktionen, die vom LSB benötigt werden ( refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/… ). Das mit Tomcat in Ubuntu gelieferte Init-Skript enthält all diese Aktionen.
Steven D
19
Abhängig vom Init-System erstellen Sie das Init-Skript unterschiedlich. Mit Fedora haben Sie die Wahl zwischen Upstart und System und natürlich der SysV-Kompatibilität.
Emporkömmling
Servicedefinitionsdatei erstellen als /etc/init/custom-tomcat.conf
reintun:
start on stopped rc RUNLEVEL=3
respawn
exec /path/to/your/tomcat --and --parameters
Und Ihr Tomcat sollte beim Systemstart starten.
Systemd
Servicedefinition erstellen in /etc/systemd/system/custom-tomcat.service
Tomcat ist ein ziemlich verbreiteter Dienst, ich würde empfehlen, das von der Distribution bereitgestellte Init-Skript zu lesen. Wahrscheinlich funktioniert es mit Ihrer angepassten Binärdatei, ohne dass es zu Änderungen kommt.
Wenn Sie einen cronDaemon haben, ist einer der vordefinierten Cron-Time-Hooks @reboot, der natürlich beim Systemstart ausgeführt wird. Führen crontab -eSie crontabFolgendes aus, um Ihre Datei zu bearbeiten und eine Zeile hinzuzufügen:
Es gilt NUR für fcron - nicht für vixie-cron oder andere cron AFAIK.
Maciej Piechotka
@ Maciej Es funktioniert definitiv für Vixie-Cron; das benutze ich
Michael Mrozek
@ Hugo Alle Startups
Michael Mrozek
6
Um ein Skript einfach auszuführen, nachdem der Computer gestartet wurde, aber bevor sich ein Benutzer anmeldet, können Sie einfach das Skript /etc/rc.local bearbeiten, das genau diese Aufgabe lösen soll.
Antworten:
Um einen Dienst ohne oder vor dem Anmelden am System auszuführen (dh "beim Booten"), müssen Sie ein Startskript erstellen und es der Bootsequenz hinzufügen.
Ein Dienstskript besteht aus drei Teilen: Starten, Stoppen und Neustarten.
Die Grundstruktur eines Service-Skripts lautet:
Sobald Sie das Skript nach Ihren Wünschen angepasst haben
, platzieren Sie es einfach in /etc/init.d/. Fügen Sie es dem Systemdienst-Startprozess hinzu (unter Fedora bin ich kein Ubuntu-Benutzer,> D):
Der Dienst wird dem Systemstartprozess hinzugefügt, und Sie müssen ihn nicht erneut manuell starten.
Prost!
quelle
Abhängig vom Init-System erstellen Sie das Init-Skript unterschiedlich. Mit Fedora haben Sie die Wahl zwischen Upstart und System und natürlich der SysV-Kompatibilität.
Emporkömmling
/etc/init/custom-tomcat.conf
reintun:
Und Ihr Tomcat sollte beim Systemstart starten.
Systemd
/etc/systemd/system/custom-tomcat.service
reintun:
und aktivieren Sie Ihren Dienst mit
systemctl enable custom-tomcat.service
. Es wird bei jedem normalen Bootvorgang gestartet.Natürlich gibt es für beide init-Systeme nur noch wenige Konfigurationsmöglichkeiten, diese können Sie in der Dokumentation nachlesen.
quelle
Tomcat ist ein ziemlich verbreiteter Dienst, ich würde empfehlen, das von der Distribution bereitgestellte Init-Skript zu lesen. Wahrscheinlich funktioniert es mit Ihrer angepassten Binärdatei, ohne dass es zu Änderungen kommt.
quelle
Wenn Sie einen
cron
Daemon haben, ist einer der vordefinierten Cron-Time-Hooks@reboot
, der natürlich beim Systemstart ausgeführt wird. Führencrontab -e
Siecrontab
Folgendes aus, um Ihre Datei zu bearbeiten und eine Zeile hinzuzufügen:quelle
Um ein Skript einfach auszuführen, nachdem der Computer gestartet wurde, aber bevor sich ein Benutzer anmeldet, können Sie einfach das Skript /etc/rc.local bearbeiten, das genau diese Aufgabe lösen soll.
quelle
Sie können ein komplexeres Skript erstellen, mit dem Sie unter den Berechtigungen eines bestimmten Benutzers wie folgt ausführen können:
Das Skript befindet sich in /etc/init.d/myservice und Sie starten den Dienst, indem Sie Folgendes ausführen:
Lesen Sie die Manpage zu start-stop-daemon, um zu verstehen, wie es funktioniert.
quelle
In Ubuntu oder Debian können Sie wie gewohnt hinzufügen
zu entfernen
Tschüss! \O
Es ist schön, die Funktionen status und force -reload zu implementieren, um LSB-kompatibel zu sein
quelle
service --status-all
Liste anzeigen lassen ?