Ho scritto uno script bash che esegue il backup di determinati file sul mio computer. Per automatizzare l'esecuzione dello script, ho impostato un demone associato che esegue lo script ogni giorno.
Ci sono alcuni casi in cui vorrei che il daemon stampasse i messaggi di errore. Ad esempio, il mio script dipende dalla mia struttura di directory e verrà eseguito in modo errato se sposto determinate directory. Se le directory sul mio sistema non corrispondono a quelle dello script, vorrei che il demone trasmettesse un messaggio di errore in modo che io possa aggiornare lo script.
Ecco il problema: se avessi appena eseguito lo script nel terminale, avrei potuto facilmente stampare un messaggio di errore sul terminale. Ma quando il daemon esegue lo script, non stampa nulla sul terminale. (Il daemon stampa su qualsiasi cosa? Dove va il testo stampato?)
Riesco a vedere diversi modi in cui il daemon comunica all'utente un errore:
- Utilizza il comando
wall
nello script per stampare l'errore su tutti gli utenti - Utilizza il comando
launchctl -list
per controllare manualmente il codice di uscita del daemon (che l'utente deve ricordare di fare) - Hve lo script scrive su un file di errore / log esterno creato dall'utente (che l'utente deve notare / controlla)
- Utilizza ASL o Syslog (consulta la Libreria per sviluppatori Mac ) ad es scrivi l'errore in un file
.asl
L'opzione 1 sembra troppo semplice. Le opzioni 2 e 3 sono insoddisfacenti perché funzionano solo se l'utente si ricorda di controllare qualcosa. Non ne so molto dell'opzione 4, ma sembra costruita per tipi di errori più complicati.
Qual è il modo consigliato per un demone per comunicare all'utente un errore? (Questa è una domanda per Stack Overflow?)