28

I want to watch output from a systemd service on CentOS as if I have started this service from console. Yes, I can see output with journalctl, but it doesn't scroll to the bottom automatically. So how can I watch live output from service?

2 Answers 2

45
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.

1
  • Can we just all agree that SystemD is amazing? Nov 5, 2022 at 22:55
12

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .