Wie man ein Shell-Skript beim Start ausführt
Auf eine amazon linux-instance, ich habe zwei scripts namens start_my_app
und stop_my_app
die start-und stop - für immer (die wiederum läuft mein node.js app). Ich benutze diese Skripte manuell zu starten und zu stoppen mein node-app. So weit So gut.
Mein problem: ich möchte auch, um es einzurichten, so dass start_my_app
immer ausgeführt, wenn das system hochfährt. Ich weiß, dass ich brauche, um eine Datei hinzuzufügen innerhalb init.d
und ich weiß, wie ich den symlink es in das richtige Verzeichnis innerhalb rc.d
aber kann nicht herausfinden, was eigentlich gehen muss in der Datei, dass ich in init.d
. Ich denke es sollte nur eine Zeile, wie start_my_app
aber das hat nicht für mich arbeiten.
InformationsquelleAutor der Frage meetamit | 2012-10-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Datei setzen Sie in
/etc/init.d/
Sie haben, um es ausführbar mit:Dank @meetamit, wenn dieser nicht ausgeführt wird, erstellen Sie einen symbolischen Link auf
/etc/rc.d/
Bitte beachten Sie, dass auf neueste Debian, das wird nicht funktionieren, da dein script haben, um LSB-konform (geben Sie mindestens die folgenden Aktionen ausführen: start, stop, restart, force-reload und status):
https://wiki.debian.org/LSBInitScripts
Als Hinweis, sollten Sie den absoluten Pfad zu Ihrem Skript anstelle eines verwandten, kann es sein, löst unerwartete Probleme:
Und vergessen Sie nicht, fügen Sie am Anfang der, Datei:
InformationsquelleAutor der Antwort Jonathan Muller
Legen Sie eine crontab für diese
nach jedem Systemstart ausgeführt wird test-Skript.
InformationsquelleAutor der Antwort Hemant kumar
Ein einfacher Ansatz ist das hinzufügen einer Zeile in
/etc/rc.local
:oder wenn Sie möchten, führen Sie den Befehl als root aus :
(die nachfolgende kaufmännische und Hintergründe des Prozesses und ermöglicht dem rc.lokalen weiter ausgeführt)
Wenn Sie möchten, eine full-init-Skript, debian-Distribution haben eine Vorlage-Datei, also :
anzupassen und es ein bisschen.
InformationsquelleAutor der Antwort Gilles Quenot
Dies ist die Art, wie ich es auf red-hat-Systeme
Setzen Sie Ihre script in
/etc/init.d
root gehören und ausführbar ist. Am Anfang des Skripts, können Sie eine Richtlinie fürchkconfig
. Beispiel das folgende Skript verwendet wird zum starten einer java-Anwendung als Benutzer oracle.Den Namen des Skripts ist
/etc/init.d/apex
diese besagt, dass das Skript ausführen muss, auf den Stufen 3, 4 und 5 und die Priorität für start/stop 99 und 10.
dann als Benutzer root können Sie
chkconfig
aktivieren oder deaktivieren Sie das Skript beim Start,und Sie können die service-start - /stop-apex
InformationsquelleAutor der Antwort Saule
Weitere option ist, um einen @reboot-Befehl in der crontab.
Nicht jede version von cron unterstützt, aber wenn Ihr Beispiel basiert auf der Amazon Linux AMI, dann wird es funktionieren.
InformationsquelleAutor der Antwort chris
Nur eine Zeile Hinzugefügt, um Ihre crontab..
Stellen Sie sicher, dass die Datei ausführbar ist:
Bearbeiten Sie die crontab-Datei:
Zeile, die Sie hinzufügen müssen:
Einfach ist das!
InformationsquelleAutor der Antwort Luciano Ghilarducci
Geben Sie
cron
mitsudo
:sudo crontab -e
Einen Befehl zum ausführen auf starten, in diesem Fall ein Skript:
@reboot sh /home/user/test.sh
Sparen:
ESC drücken, dann :x, speichern und beenden, oder drücken Sie ESC, dann ZZ (shift+zz)
Test Test Test:
Führen Sie Ihre test-Skripts ohne cron, um sicherzustellen, dass es tatsächlich funktioniert.
Stellen Sie sicher, Sie speichern Ihren Befehl in cron verwenden
sudo crontab -e
Starten Sie den server neu, um zu bestätigen, es funktioniert alles
sudo @reboot
InformationsquelleAutor der Antwort user3140639
Können Sie es tun :
dann verwenden Sie diesen Befehl,
Dieser Seite finden Sie die auf Cyberciti.
InformationsquelleAutor der Antwort IR PRO
Für Debian 9 siehe https://askubuntu.com/questions/228304/how-do-i-run-a-script-at-start-up. Es wird mir geholfen. Kurze version für Debian 9:
hinzufügen von Befehlen (als root) /etc/rc.lokale
Wahrscheinlich, /path_to_file/filename.sh sollte ausführbar sein (ich denke so).
InformationsquelleAutor der Antwort Mikhail Ionkin
Erstellen Sie Ihre eigenen /init ausführbare
Dies ist nicht das, was Sie wollen, aber es ist Spaß!
Wählen Sie einfach eine beliebige ausführbare Datei, auch ein shell-scriptund bootet den kernel mit dem Befehl Linie parameter:
Gegen Ende des Bootloaders, der Linux-kernel läuft, der erste userspace ausführbaren Datei am angegebenen Pfad.
Mehrere Projekte bieten beliebte
init
ausführbaren Dateien verwendet, die von major-Distributionen, z.B. systemd, und in den meisten Distributionen, wird init Sie als Gabel eine Reihe von Prozessen verwendet, die im normalen Betrieb des Systems.Aber wir können mit hijack
/init
es um unsere eigenen minimalen Skripts, um besser zu verstehen wie unser system funktioniert.Hier ist eine minimale reproduzierbare Einrichtung: https://github.com/cirosantilli/linux-kernel-module-cheat/tree/f96d4d55c9caa7c0862991025e1291c48c33e3d9/README.md#custom-init
InformationsquelleAutor der Antwort Ciro Santilli 新疆改造中心 六四事件 法轮功
Die absolute einfachste Methode, wenn alle Sie ausführen möchten, ist ein einfaches Skript (oder etwas) ist, wenn Sie eine gui verwenden system - > Einstellungen, dann Start-apps.
nur navigieren Sie zu dem Skript, das Sie wollen, und dort gehen Sie. (Skript ausführbar machen)
InformationsquelleAutor der Antwort fieldsweeper
Diese einfache Lösung funktionierte für mich auf eine Amazon Linux-instance läuft CentOS.
Bearbeiten Sie Ihre
/etc/rc.d/rc.local
- Datei und setzen Sie den Befehl gibt. Es ist erwähnt in dieser Datei, die es ausgeführt wird nach alle anderen init-Skripte. Also seien Sie vorsichtig, Bezug auf. Dies ist, wie die Datei sieht bei mir derzeit.. Letzte Zeile ist der name des Skripts.InformationsquelleAutor der Antwort shshnk
$ update-rc.d myScript.sh defaults NN
wobei NN ist die Reihenfolge, in der es ausgeführt werden soll. 99 zum Beispiel bedeutet, es wäre nach 98 und vor 100.InformationsquelleAutor der Antwort Kibrom Gebre
für einige Menschen dies funktioniert
Könnten Sie fügen Sie einfach den folgenden Befehl in System - > Einstellungen - > Autostart-Anwendungen:
InformationsquelleAutor der Antwort SagarSave
wenn Sie wollen, um Start-auch Sie können
zunächst verschieben Sie Ihr Skript /etc/init.d dann
chmod 777 /etc/init.d/Ihrem Skript name
nach der Anwendung folgenden Befehl
update-rc.d Ihr Skript die Standardwerte
entfernen
update-rc.d -f Ihr Skript entfernen
beim Start können Sie Ihre app ausgeführt wird.
InformationsquelleAutor der Antwort murat maman