BASH redirection en nohup et double ...

Fermé
sbouli Messages postés 200 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 14 août 2014 - Modifié par sbouli le 6/12/2011 à 11:23
sbouli Messages postés 200 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 14 août 2014 - 6 déc. 2011 à 11:57
Bonjour,

Je souhaite lancer un script PHP en daemon nohup avec 3 objectifs :
- capturer ou ne pas avoir de message de nohup lors du lancement
- envoyer les flux OUT et ERR dans le même fichier de log
- envoyer EN PLUS le flux ERR dans un autre fichier de log (en double)
EDIT : si en plus je pouvais récupérer facilement l'id process dans un fichier >/var/run/script.pid
j'en suis à :

nohup /script.php 0</dev/null 1>/logs/output_script.log 2>&1  & 


je n'ai pas trouvé pour faire un tee des erreurs dans output_script_erreurs.log

Merci pour votre aide !

Stéphane
A voir également:

2 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
6 déc. 2011 à 11:40
essai ça :

nohup /script.php 0</dev/null 1>>/logs/output_script.log 2| tee -a /logs/output_sript.log>err.log &

pour récupérer l'id du processus, ce n'est pas évident car tu utilise nohup. Attention avec nohup, car il n'est pas toujours pris en compte.
Sinon, ce que tu fait, tu lances en tâche de fond (sans nohup), tu récupère l'id (la dernière ligne de jobs par exemple) et du détache le processus avec disown.
1
sbouli Messages postés 200 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 14 août 2014 2
6 déc. 2011 à 11:57
Bonjour

tout d'abord, merci !, j'ai bien le log d'erreur dans le log spécifique !!

par contre j'ai aussi ce message : nohup: redirecting stderr to stdout et il faut que je valide par espace le passage en background, je vais donc essayer ta solution du disown.

pour le PID, je passe par php direct finalement ça me parait plus simple !

Merci

Stéphane
0