Puoi reindirizzare stdout
e stderr
dell'intera shell usando il script
pragma (invece di exec
) insieme a exec >FILE 2>&1
, in questo modo:
script
exec >/path/to/some_log_file 2>&1
exec your_command_here
end script
Si spera che questo dovrebbe darti una visione migliore di quello che sta succedendo. L'ho trovato utile per catturare tutti i tipi di problemi nei miei script upstart. Potresti pipe il stdout
del tuo comando /stderr
direttamente, ma ti perderai gli errori che hanno origine nella shell (come gli errori di sintassi).
D'altra parte, se service
è sospeso, potrebbe nemmeno colpire il tuo script, nel qual caso niente di tutto questo ti aiuterà, ovviamente.
C'è anche l'console log
dichiarativo, come definito qui:http://upstart.ubuntu.com/cookbook/#console-log
Non ne so abbastanza di upstart per sapere se è abilitato per impostazione predefinita, ma puoi abilitarlo in base al lavoro di upstart, per impostazione predefinita l'output sarà /var/log/upstart/<job>.log