Ich habe eine Frage zur Arbeit mit /etc/init.d
Shell-Skripten.
Ich möchte lediglich eine Datei aus einem Befehl im Shell-Skript löschen, und zwar etwa so:
case $1 in
stop)
echo "Stopping"
rm -f /var/run/memcached/memcached.pid
esac
Ich speichere es als Test und erstelle die memcached.pid
Datei.
Wenn ich /etc/init.d/test
„Stop“ mit dem Skript aus dem Ordner ausführe , wird /etc/init.d/
die Datei nicht gelöscht.memcached.pid
Wenn ich das Skript von meinem Home-Verzeichnis aus ausführe, funktioniert es einwandfrei.
Ist ein spezielles Format oder eine spezielle Struktur des Befehls erforderlich?
Antwort1
Verwenden Sie den vollständigen Pfad zu rm; vergewissern Sie sich, dass er auf Ihrem System derselbe ist:
/usr/bin/rm -f /var/run/memcached/memcached.pid
Init-Skripten ist Ihre (oder Root-)Umgebungsvariable PATH normalerweise nicht festgelegt.