So führen Sie ein Skript beim Start von CentOS Linux aus

13

Ich habe ein Skript eingefügt /etc/init.d/abc.sh. Jetzt möchte ich, dass es beim Start ausgeführt wird.

Wie kann ich das mit chkconfig machen?

chkconfig --add abc.sh

Aber ich bin mir nicht sicher, wie es funktioniert.

Fata Morgana
quelle
Es gibt einen alten, aber immer noch nützlichen Artikel unter linuxjournal.com/article/4445
RedGrittyBrick

Antworten:

8

Ich benutze oft nur

/etc/rc.local

So wie...

Echo "/etc/init.d/abc.sh" >> /etc/rc.local

sollte es für dich hacken. Es gibt wahrscheinlich mehr richtige Orte, aber was auch immer, es funktioniert, auf den meisten Distributionen scheint es.

James T Snell
quelle
Dieses Skript ist ein Daemon und ich habeabc start stop restart configurd
Mirage
Vielleicht möchten Sie es anrufen, indem Sie Folgendes eingeben: 'service abc start'
James T Snell
8

Skripte, die beim Start ausgeführt werden, gelten nicht als Skript. Wenn das Skript beim Start ausgeführt werden soll, ändern Sie Folgendes in /etc/crontab:

@reboot /path/to/script
saravanakumar
quelle
1
Würde es als Root-Benutzer ausgeführt, wenn es im Cron platziert wird?
Kimberly W
2
Das ist eine geniale Idee! Es ist tragbar und einfach. Es schadet dem Boot nicht. Es kommt nach dem Start der Systemmodule mit genauen Benutzerberechtigungen .... In meinem Fall auf Centos 7 wäre es "@reboot root / path / to / script"
Nicolas Guérinet
2

Schauen Sie sich andere vorhandene Init-Skripte an. In jedem richtigen Init-Skript im Rh-Stil gibt es drei Hinweise: die Runlevel, auf denen das Skript gestartet werden soll, und die Priorität, bei der es gestartet / gestoppt werden soll. Die Summe aus Start + Stopp sollte normalerweise 100 betragen.

Diese Kommentarzeile wird von chkconfig ausgewertet.

Nils
quelle
1

Sie können nicht, es sei denn, Sie lesen /usr/share/doc/initscripts-*/sysvinitfilesund strukturieren Ihr Skript entsprechend.

Ignacio Vazquez-Abrams
quelle
1

Du bist auf dem richtigen Weg. Ihr Bash-Skript befindet sich am richtigen Ort und Sie haben es Ihrer chkconfig hinzugefügt, was bedeutet, dass Ihr Skript installiert ist.

Bitte beachten Sie, dass dies /etc/init.dein symbolischer Link zu ist/etc/rc.d/init.d

Nachdem Sie Ihr Skript hinzugefügt haben, müssen Sie auswählen, auf welchem ​​Runlevel Sie es aktivieren möchten: chkconfig --level 35 abc onAktiviert Ihr Skript auf den Runlevel 3 und 5, Ihren häufigsten Starts.

Bitte konsultieren Sie chkconfig --helpfür weitere Informationen.

PS. Sie können auch ntsysvein tui für chkconfig verwenden.

Dejan
quelle