Wie installiere ich ein init.d-Skript?

71

Ich versuche, ein init.d-Skript zu installieren, um Sellerie zum Planen von Aufgaben auszuführen. Hier sind die Schritte, denen ich gefolgt bin:

  • kopierte die Datei celeryd und fügte sie in den Ordner /etc/init.d/ ein
  • Erstellt eine Konfigurationsdatei celeryd im Ordner / etc / default /

Jetzt, als ich versuchte, es zu starten sudo /etc/init.d/celeryd start, wirft es Fehlersudo: /etc/init.d/celeryd: command not found

Ich habe über die Installation von init.d gegoogelt und diese SO-Frage bekommen .

es heißt, ein auszustellen uname -aund wenn ich es tue, bekomme ich das:

Linux capsonesystem8-desktop 3.2.0-43-generic-pae 
#68-Ubuntu SMP Wed May 15 03:55:10 UTC     
2013 i686 i686 i386 GNU/Linux

und es heißt auch insserv, dass Sie Utils verwenden möchten, um das init.d-Skript zu aktivieren.

insserv /etc/init.d/celeryd aber es wirft Fehler insserv: command not found

Also habe ich versucht, insserv zu installieren sudo apt-get install insserv. aber es heißt schon installiert:

insserv is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 222 not upgraded.

Wie installiere ich das init.d-Skript? Jede Hilfe wird geschätzt.

update1:

als ich versuchte:

$ sh -x /etc/init.d/celeryd start

es enthüllt einige errors. Möglicherweise startet der Dienst deshalb nicht.

update2:

Ich räumte alle Fehler , wenn ich laufen , $ sh -x /etc/init.d/celeryd startaber immer noch sudo /etc/init.d/celeryd startwirft command not foundFehler

suhailvs
quelle
Ich habe jetzt keine Zeit für eine Antwort, aber wenn Sie möchten, dass dies als Teil Ihres Startvorgangs ausgeführt wird, müssen Sie Verknüpfungen zu Ihrem Skript in den verschiedenen Runlevel-Verzeichnissen hinzufügen, damit Linux das Starten und Stoppen übernimmt Sie. (/etc/rc[0-6‹.d) Dieser Prozess wird allmählich durch eine neuere Methode ersetzt (ich denke, sie nennt sich Emporkömmling.), aber ich habe das überhaupt nicht untersucht. Der Link in Ihrem Beitrag behandelt einige davon.
Joe

Antworten:

55

Ihr celerydSkript ist wahrscheinlich nicht ausführbar, deshalb sudo /etc/init.d/celerydkehrt es zurück command not found. Sie müssen es also zuerst ausführbar machen.

Führen Sie dazu die folgenden Befehle aus:

sudo chmod 755 /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd

In der ersten Zeile werden die Berechtigungen in geändert -rwxr-xr-x, und in der zweiten Zeile wird sichergestellt, dass der Eigentümer und der Gruppeneigentümer der Datei sind root.

Sobald dies erledigt ist, müssen Sie sudo /etc/init.d/celeryd startvermutlich den Daemon starten.

Alaa Ali
quelle
70

Vergessen Sie beim Kopieren des Skripts nicht, es ausführbar und im Besitz von root zu machen:

sudo chmod +x /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd

Sobald Sie das installiert haben, können Sie es so einstellen, dass es beim Booten automatisch startet mit:

sudo update-rc.d celeryd defaults
sudo update-rc.d celeryd enable
David Purdue
quelle
Dies wird als die beste Antwort angesehen, auf die verwiesen wird update-rc.d.
MAChitgarha
3

Wenn Sie den command not foundFehler bei der Ausführung erhalten insserv, können Sie ihn beheben, indem Sie den folgenden Befehl ausführen :

sudo ln -s /usr/lib/insserv/insserv /sbin/insserv

Dann schauen Sie insserv -hoder man insservum Hilfe.

Sie können auch versuchen mit:

sudo update-rc.d celeryd defaults

Quelle: https://askubuntu.com/a/334043/147044

Radu Rădeanu
quelle
1

Dies ist die Befehlssequenz, um Ihren Daemon beim Booten automatisch zu starten:

sudo cd /etc/init.d
sudo chown root:root celeryd
sudo chmod 755 celeryd
sudo ln -s /usr/lib/insserv/insserv /sbin/insserv
sudo insserv celeryd
Oleg Bondar
quelle