Berechtigungsproblem beim starten von einem daemon

18/09/2013 - 22:56 von Marcel Müller | Report spam
Hallo,

ich habe hier ein Berechtigungsproblem mit einem Dienst der sich selber
stoppen und per Timer wieder starten soll. Also Server (Wheezy) mit
DVB-Karte und vdr. Wenn vdr idelt, fàhrt dessen Shutdown-Script nicht
den Rechner runter, sondern nur vdr (zum Strom sparen). Gleichzeitig
wird ein Skript mit at gestartet, was rechtzeitig zum nàchsten Timer
wieder /etc/init.d/vdr start ausführt. Das hat schon mal funktioniert,
aber jetzt geht es irgendwie nicht mehr.

Das Problem ist, dass vdr unter dem User vdr làuft. Folglich wird auch
at und damit das Starten des Dienste unter dem User vdr ausgeführt. Das
wiederum funktioniert nicht so richtig. Da kommt unable to open pidfile
'/var/run/runvdr.pid'. Vermutlich weil der User vdr das nicht so richtig
darf. Naja, und vdr làuft dann irgendwie auch nicht so richtig und làsst
sich nicht mehr gescheit stoppen.

Wie kommt man aus der Nummer raus?


Marcel
 

Lesen sie die antworten

#1 Thomas PointedEars Lahn
19/09/2013 - 05:08 | Warnen spam
Marcel Müller wrote:

ich habe hier ein Berechtigungsproblem mit einem Dienst der sich selber
stoppen und per Timer wieder starten soll. Also Server (Wheezy) mit
DVB-Karte und vdr. Wenn vdr idelt, fàhrt dessen Shutdown-Script nicht
den Rechner runter, sondern nur vdr (zum Strom sparen). Gleichzeitig
wird ein Skript mit at gestartet, was rechtzeitig zum nàchsten Timer
wieder /etc/init.d/vdr start ausführt. Das hat schon mal funktioniert,
aber jetzt geht es irgendwie nicht mehr.

Das Problem ist, dass vdr unter dem User vdr làuft. Folglich wird auch
at und damit das Starten des Dienste unter dem User vdr ausgeführt. Das
wiederum funktioniert nicht so richtig. Da kommt unable to open pidfile
'/var/run/runvdr.pid'. Vermutlich weil der User vdr das nicht so richtig
darf. Naja, und vdr làuft dann irgendwie auch nicht so richtig und làsst
sich nicht mehr gescheit stoppen.

Wie kommt man aus der Nummer raus?



1. RTFM, STFW. Du wirst nicht der Einzige sein, der das Problem hat.
Und „geht irgendwie nicht“ ist keine Fehlerbeschreibung.

2. In /etc/init.d/vdr nachgucken, ob es vorgesehen ist, einen anderen
Benutzer zu verwenden. Falls ja, zuerst

dpkg-reconfigure vdr

(o. à.) ausprobieren, um die /etc/default/vdr (o. à.) damit zu
konfigurieren. (Herausfinden, welches Paket die Datei bereitstellt,
mit “dkpg -S …”.)

3. Falls das nicht geht,

aptitude reinstall vdr

(o. à.), um evtl. verlorengegangene Berechtigungen wiederherzustellen.

4. Falls das nicht geht, geht es zum Beispiel mit suid-Bit. Als root:

f=$(readlink -e /etc/init.d/vdr) && {
chown root "$f" /var/run/runvdr.pid
chmod +u+s "$f"
dpkg-statoverride --add root root 4770 "$f"
}

Damit wird das init-Skript immer als root ausgeführt, auch nach
Upgrades. Vertrauenswürdiger Anbieter wird vorausgesetzt.

HTH

PointedEars

Twitter: @PointedEars2
Please do not Cc: me. / Bitte keine Kopien per E-Mail.

Ähnliche fragen