On OpenSUSE systems running systemd all rcX scripts now redirect start, stop, reload, restart, etc. service commands to systemctl. The messages that used to appear on STDOUT telling you that a command is successful (or not) are now logged, but are no longer displayed on STDOUT.
That I can deal with, but every call to an rcX script now generates the message “redirecting to systemctl” to STDERR. I have a lot of scripts that call rcX scripts, and they interpret STDERR messages as “something just broke”.
The culprit is the new /etc/rc.status script that ships with OpenSUSE. It spews out the “redirecting to systemctl” message to STDERR for every operation that you do. The following command will modify the script and remove this stupid message:
if ( grep -q 'redirecting to systemctl' /etc/rc.status ) ; then # Save a copy of the original file cp -p /etc/rc.status /etc/rc.status.orig; # OpenSUSE 12.1: perl -i.bak -pe 's,echo "redirecting to systemctl" >/dev/stderr,,;' /etc/rc.status; # OpenSUSE 12.3: perl -i.bak -pe 's,echo "redirecting to systemctl \${SYSTEMCTL_OPTIONS} \$1 \${_rc_base}" 1>&2,,;' /etc/rc.status; fi
This works for OpenSUSE 12.1 and 12.3. I did not have a 12.2 system available to test with.
Hope you find this useful.
I tried your way
and I get no more ‘redirecting to systemctl’ message
but I get no log messages of services on my console also.
How can I get messages appear on STDOUT.
thanks.
Check your syslog service. (Might be syslog, rsyslog, or syslog-ng depending on the distro and version.) Is it running? Is it configured to send log messages to the console?