daemonizing scripts

Giorgos Keramidas keramida at ceid.upatras.gr
Tue May 11 11:48:01 EEST 2010


On Tue, 11 May 2010 11:21:45 +0300, Nick Demou <ndemou at gmail.com> wrote:
> Τρέχω που και που scripts (κυρίως python και σπανιότερα bash ) από το
> /etc/rc.local με
>
>    nohup  script > log.file &
>
> Είμαι σίγουρος ότι αυτός ο τρόπος δεν είναι και τόσο κομψός (αλλά ήταν
> πολύ γρήγορος :)
>
> Μπορεί κανείς να μου υποδείξει κάποιο καλό how-to για τον Σωστό τρόπο
> να μετατρέψεις ένα python script σε daemon και να χειριστείς το loging
> με αξιοπρεπή τρόπο? ( To ίδιο για bash scripts αλλά αυτό είναι 2η
> προτεραιότητα )

Στήσε το utility daemon(1).  Στο FreeBSD είναι μέρος από το base
system.  Στο Debian είναι διαθέσιμο με "apt-get install daemon".
Σε άλλα distributions επίσης υπάρχει ως package.

Ύστερα τρέχεις απλά κάτι σαν:

    daemon -c -f -p /var/run/script.pidfile ./script

Οι επιλογές -c και -f είναι χρήσιμες για να έχει κάπως πιο
predictable startup environment το script σου:

     -c      Change the current working directory to the root (“/”).

     -f      Redirect standard input, standard output and standard error
             to /dev/null.

Το pidfile handling το κάνει το daemon(1) utility ΠΡΙΝ το exec()
του script, οπότε γλιτώνεις και από αυτό το βαρετό κομμάτι.

-- 
"This wheel doesn't have to be reinvented anymore."


More information about the Linux-greek-users mailing list