I'd like to escalate this to a higher priority.

There are existing applications that expect init scripts to return a string or RC value. The current code in /lib/lsb/init-functions.d/40-systemd looks like this:

[ "$command" = status ] || log_daemon_msg "$s" "$service"
/bin/systemctl $sctl_args $command "$service"
rc=$?
[ "$command" = status ] || log_end_msg $rc

A problem arises whenever a script executes the status command, but systemctl then invokes a pager.

For example, on a 'vagrant up' with a Vagrantfile using an nfs synced_folder, vagrant will invoke '/etc/init.d/nfs-kernel-server status' for each VM it is bringing up that has such a config. Systemctl then invokes a pager for every VM, effectively halting the process until the user exits the pager. It isn't even clear that a pager is invoked.

So please raise the priority on this as it seems only logical to have traditional init scripts not invoke a pager when passing the 'status' argument; using --lines=0 is a viable solution and likely better than --no-pager.

Reply via email to