Why do some systemctl operations output to stderr?

I've created a service; lets call it abc.service. I run:

sudo systemctl enable /home/pi/abc.service 1>output.txt 2>error.txt

and output.txt is empty while error.txt contains:

Created symlink /etc/systemd/system/ -> /home/pi/abc.service.
Created symlink /etc/systemd/system/abc.service -> /home/pi/abc.service.

Why is this?

EDIT: My purpose is this -- I have a global program running that can run commands, and commands with stderr are flagged and printed to error files. However, it seems like systemd is printing to stderr (and therefore my error files) even though it seems like it's not an error.

EDIT2: Example systemd file:

[Unit]
Description=Test file
[Service]
Type=simple
ExecStart=/bin/ls /home/pi
[Install]
WantedBy=multi-user.target

Just tested, enabling this file prints to stderr (like error.txt from above). Tested service, prints dir contents of home directory.

6

1 Answer

There is a lot of documentation here:systemd man page

You might also redirect the "enable" output to stdout (although that might redirect real errors there too.

It does seem like the action does not follow Unix "standards" as to what is an error and what is not.

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like