Impostazione del proprietario del file creato dal reindirizzamento dell'output start-stop-daemon

4

Ho la seguente riga in do_start () del mio script init personalizzato che avvia un'applicazione java:

start-stop-daemon --background --start --quiet --oknodo --make-pidfile --pidfile $PIDFILE --chdir $SOLR_DIR --chuid $USER --exec $DAEMON -- \
$DAEMON_ARGS >>$LOG_DIR/$NAME.log 2>>$LOG_DIR/$NAME.err 

una volta espanso, diventa:

start-stop-daemon --background --start --quiet --oknodo --make-pidfile --pidfile /var/run/solr.pid 
--chdir /home/phuihock/src/proj/solr 
--chuid phuihock 
--exec /usr/bin/java 
-- -jar start.jar >>/home/phuihock/src/proj/logs/solr.log 2>>/home/phuihock/src/proj/logs/solr.err

I file di registro creati sono di proprietà dell'utente root, gruppo root. Mi aspetterei che siano di proprietà dell'utente che ho impostato con --chuid, perché dalla pagina di manuale, tutto dopo - sono passati senza modifiche.

La mia domanda è, sono tutti i reindirizzamenti da start-stop-demone di proprietà di root, e c'è un modo per cambiarlo?

    
posta phuihock 17.04.2011 - 20:58

1 risposta

2

I reindirizzamenti non fanno parte degli argomenti della riga di comando. Sono gestiti separatamente dalla shell, che nel tuo caso viene eseguita come root. Ma anche se le autorizzazioni fossero corrette, questo comando non avrebbe causato l'aggiunta del risultato del daemon al file di registro.

Per illustrazione, questo è ciò che realmente accade:

  1. La shell esegue start-stop-daemon e reindirizza l'output a solr.log. Il file sarà vuoto, poiché questo comando non emette nulla (prova a eseguirlo manualmente, senza reindirizzamenti).
  2. Il comando start-stop-daemon elabora i suoi argomenti e termina chiamando /usr/bin/java -jar start.jar . Si noti che non vi è alcun reindirizzamento dell'output, ma il processo è biforcuto in background, quindi l'output finisce in / dev / null.

In altre parole, il demone dovrebbe accettare un argomento del file di registro, oppure è necessario creare uno script wrapper che gestirà il reindirizzamento. Potrebbe apparire come segue

#/bin/sh
cd /home/phuihock/src/proj/solr
exec /usr/bin/java -jar start.jar >> logs/solr.log
    
risposta data Adam Byrtek 18.04.2011 - 01:56

Leggi altre domande sui tag