Podproces apache i daemony odpalane z PHP

Problemy dotyczące programowania.

Moderatorzy: Moderatorzy, Administratorzy

socek
Użytkownik
Posty: 138
Rejestracja: 2004-12-20, 16:15
Kontakt:

Podproces apache i daemony odpalane z PHP

Post autor: socek »

Mam skrypt PHP który odpala mi daemona.

Kod: Zaznacz cały

exec( 'nohup ./daemon.py  &>/dev/null &', $out, $err );
Wszystko działa ładnie dopóki apache się nie zresetuje. Kiedy apache się zresetuje, to ubija tego daemona. Nie jestem w stanie doprowadzić do sytuacji w której apache się nie resetuje. Czy idzie zrobić jakoś, aby daemon nie był killowany podczas resetu apache'a?
Tak odpalam daemona w Pythonie:

Kod: Zaznacz cały

#sprawdzanie czy pid istnieje, jeśli istnieje to sprawdzamy czy daemon jest włączony
    if self.is_pid():
            if self.is_alive():
                print ' - pid exists, exiting -'
                raise PidExists( self._pid_path )
            else:
                print ' - pid exists, but daemon is dead -'
                self.kill()

#tworzenie procesu daemona
        pid = os.fork()
        if pid > 0:
            fp = open( self._pid_path, 'w' )
            fp.write( str(pid) + "\n")
            fp.close()
            raise LeftForBackground()

#przekierowania stdout'a i stderr'a do pliku
        log = open( self._log_path, 'w', 0 )
        sys.stdout = log
        fsock = open(self._err_path, 'w', 0)
        sys.stderr = fsock
        self._set_process_title()
Ostatnio zmieniony 2009-10-06, 07:39 przez socek, łącznie zmieniany 1 raz.
"Wiedza uczy pokory, niewiedza pychy"
Awatar użytkownika
Hannibal
Moderator w st. spocz.
Posty: 1644
Rejestracja: 2004-06-08, 16:03
Lokalizacja: Łódź
Kontakt:

Re: Podproces apache i daemony odpalane z PHP

Post autor: Hannibal »

setsid po fork...
[size=75]Hannibal@current@2.6.X[/size]
socek
Użytkownik
Posty: 138
Rejestracja: 2004-12-20, 16:15
Kontakt:

Re: Podproces apache i daemony odpalane z PHP

Post autor: socek »

Dodałem po forku taki fragment:

Kod: Zaznacz cały

os.chdir("/")
os.setsid()
os.umask(0)
I to pomogło. Wielkie dzięki.
"Wiedza uczy pokory, niewiedza pychy"
ODPOWIEDZ