How to watch output from systemd service?
journalctl -f -u mystuff.service
It's in the manual:
-f, --follow
Show only the most recent journal entries, and continuously print new entries as they are appended to the journal.
and
-u, --unit=UNIT|PATTERN
Show messages for the specified systemd unit UNIT (such as a service unit), or for any of the units matched by PATTERN. If a pattern is specified, a list of unit names found in the journal is compared with the specified pattern and all that match are used. For each unit name, a match is added for messages from the unit ("_SYSTEMD_UNIT=UNIT"), along with additional matches for messages from systemd and messages about coredumps for the specified unit.This parameter can be specified multiple times.
To add to @don_crissti’s answer, if you want to see just the output of that service, with nothing else, you can use this:
journalctl -f -o cat _SYSTEMD_UNIT=mystuff.service
The -o cat
selects an output format that omits additional information (such as timestamps), and the use of _SYSTEMD_UNIT
instead of -u
means that messages related to the service, but not printed by it (e. g. start/stop messages or core dumps) won’t be selected.
Note that the journal splits whatever it receives from a service via StandardOutput=journal
into log records at newline and NUL
characters, so if your service prints output without a terminating newline or NUL
character for a while, this output still won’t be quite live.