The behaviour of systemctl.

Aaron Sowry aaron+rh at aeneby.se
Sat Jun 18 14:39:05 UTC 2011


On Sat, Jun 18, 2011 at 01:55:43PM +0200, Lennart Poettering wrote:
> > - 'systemctl --all' pages by default when the output is to tty. This
> >   consumes 50-60+ lines of potentially bug-prone code, and irks the
> >   crap out of me as a system administrator. systemctl's jurisdiction
> >   ends at stdout.
> 
> Well, I think in genreal the autopaging behaviour of git and other tools
> is very much appreciated. If you hate that behaviour then you are
> probably in the minority, and we have to agree to disagree on the
> benefits of this behaviour. Setting "alias systemctl='systemctl
> --no-pager'" is not particularly hard though.

Setting aliases does not remove cruft code, or documentation for flags which
don't need to exist. Flags should be used to enable functionality, not disable
bloat.

> > - The same command outputs column headers on tty, and no headers
> >   otherwise. This is inconsistent. If I am outputting to a file, or
> >   perhaps a printer, and want headers on my non-tty output, I have to
> >   add them myself since there is no flag to force them on non-tty
> >   channels. If I don't want them and they are present, I tail.
> 
> I am pretty sure that if you ask us nicely, we'll add an option to
> enable headers nonetheless. It's however usually simpler if you pipe
> something not to have to use tail/head.

Yet another flag to work around inconsistent behaviour is the last thing
systemctl needs. Simplicity is not the issue here - you are assuming that output
piped to something other than a tty is not destined for human eyes. I shouldn't
have to convince you that this is nonsense, and will only get worse if --full is
applied automatically to all non-tty output. Shall we add a --no-full flag to
work around this, too?

> > - Currently, if I run 'systemctl --all' and have no pager (at least no
> >   pager that systemctl knows of) available, I get an error message and
> >   no output. This is horribly bad form, and forces me to use
> >   --no-pager or pipe to cat in order to get output. This issue is
> >   acknowledged in RH bug 713707.
> 
> We generally do not support if people delete arbitrary things from their
> installation. /bin/more is part of util-linux, and if you delete that
> then you broke your system, so don't complain to us please.

It is difficult to concieve where systemd might end up in future. Is util-linux
a systemd dependency?

> I am not saying we shouldn't make it possible to run without any pager
> installed. But does this matter? No, not at all. It doesn't have
> priority in any way.

It may not be a priority, but nor should it even be an issue.

> > - Another bright idea (RH bug 713567) is that --full should be applied
> >   to non-tty output automatically, and not to tty output.
> 
> Yes, it actually makes sense and has been requested which is why we
> implemented it.

This is being implemented now?

> > All of these peculiarities stem from poor UNIX programming
> > practise. 
> 
> I think all of these "peculiarities" stem from actually accepting
> progress.

Subjective opinion.

> > No other Linux/UNIX tools make this assumption (with
> > perhaps the exception of git-log et. al.), and if you are wanting
> > administrators to feel comfortable with your new soon-to-be-ubiquitous
> > tools, then I suggest you try to be consistent with existing
> > convention. 
> 
> I think you are mixing up "administrators" with "Aaron Sowry".

Not really. All other administrators use exactly the same tools I do, very few
of which behave like systemctl. Having to deal with command-specific behaviour
only makes it more difficult to learn a new tool.

/Aaron
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 489 bytes
Desc: Digital signature
Url : http://lists.fedoraproject.org/pipermail/devel/attachments/20110618/996a7c63/attachment.bin 


More information about the devel mailing list