Hi Heiko!
Ohje, habe ich Ausdrucksschwierigkeiten.
Ich habe folgenes Init-Script: https://github.com/netAction/CUL_FS20/blob/master/CUL_FS20.initscript
Das Mindeste, was Du tun solltest, ist, wenn ein PID-File vorhanden ist, gucken, ob es einen Prozess mit der entsprechenden PID gibt. Wenn nicht, dann kannst Du stillschweigend davon ausgehen, dass es beim letzten Mal übrig geblieben ist.
Genau so stelle ich mir das auch vor.
Wo im Script ist der „richtige Nutzer“ zu sehen? Ich hätte ein „su“ erwartet, auf den „richtigen Nutzer“.
Genau, ich würde gerne den Benutzer wechseln im Init-Script. Ein „su“ könnte ich auch selbst hinbekommen, aber da ich nicht quer durch die Distros testen kann, würde ich mich sehr über eine Lösung von einem alten Bash-Hasen freuen.
Und der Script sollte beim start) mal sicherheitshalber ein „cd /“ machen, oder in ein anderes Verzeichnis, das auch tatsächlich vorhanden bleibt. Und vielleicht noch ein „export LC_ALL=POSIX“.
Danke, das habe ich schon mal geändert.
Ich meine, die meisten Distros haben Beispielscripte am Start, mitunter als /etc/init.d/skeleton oder ähnlich.
Da ich nicht weiß, was die User für ein Betriebssystem haben, hätte ich gerne eine etwas allgemeingültigere Lösung. Außerdem hat meine /etc/init.d/skeleton auch keinen Benutzerwechsel drin.
Und vorallem, die meisten Distros verwenden inzwischen etwas wie „startproc“ oder „start-stop-daemon“ um Prozesse im Init-Script zu starten und ggf. die PID irgendwo wiederzufinden.
Ich habe erst mit Upstart experimentiert, aber nicht mal Debian Wheezy hat das standardmäßig aktiviert. Daher bin ich mit Abhängigkeiten vorsichtig.
Hoffentlich verstehst du jetzt, was ich meine.
Viele Grüße Thomas