Rechte damit pid-Datei erstellt werden kann

D

dark.rider

Aktives Mitglied
Thread Starter
Dabei seit
17.02.2005
Beiträge
249
Reaktionspunkte
32
Hallo!

Ich möchte in meinem Programm in /var/run eine pid-Datei erstellen. Dabei ging ich nach Schema-F vor:

void CreatePIDFile(int pid)
{
FILE *f;
f = fopen(&PIDFILENAME, "wb");
if (f == NULL)
syslog(LOG_INFO, "Opening pid file '%s' failed: %s (errno = %d)\n", &PIDFILENAME, strerror(errno), errno);
else {
fprintf(f, "%d\n", pid);
fflush(f);
fclose(f);
}
}

Leider schlaegt fopen fehl mit errno=13 (permission denied).
Das Verzeichnis /var/run gehoert root/daemon und hat die Flags rwxr-xr-x. Nachdem ich die Flags auf rwxrwxrwx geaendert habe, funktioniert es. Jedoch ist es wohl nicht der "richtige" Weg. Weiss jemand was zu tun ist?

Danke im Voraus!
Thomas
 
Da darf nur root drin schreiben, alle anderen dürfen drin lesen. Du kannst Deine .pid-Datei aber auch ins /tmp-Verzeichnis legen. Sie sollte ja nur solange dort liegen, wie das Programm läuft.
 
ist das ein daemon oder warum willst du ein pid file?
kannst es ja auch nach /tmp legen, es muss ja nicht in /var/run sein...
 
Hallo!


Genau, es ist ein Daemon. Ich kenne es halt von Linux, da funktioniert der Quellcode. /var/run weil aus Gewohnheit gehoeren .pid-Dateien dort rein :)
Hab's jetzt ins /tmp geschoben.

Danke und Gruss,
Thomas
 
läuft denn der daemon dann nicht mit root rechten später?
 
  • Gefällt mir
Reaktionen: _ebm_
Ich hab eben auf meinem Mac nachgeschaut, da hat /var/run rwxrwxr-x root:daemon – sprich ein Nutzer aus der Gruppe daemon darf dort schreiben.
 
Zurück
Oben Unten