$TERM is not set for /etc/rc.local
Bug #1624967 reported by
Removed by request
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| systemd (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Bug Description
I'm using Ubuntu 16.10 dev with systemd 231-6 and after upgrading from upstart to systemd I'm noticing that a setterm command fails that I have put into /etc/rc.local in the past (to make specific settings on the console without requiring a login). On making a look at this I figured out that $TERM is not set at default anymore and maybe it makes sense to set it at default again.
To post a comment you must log in.

$TERM only gets set for units which have Standard{ Output, Error}= tty. By default services only have a stdout/err pipe to the journal, and rc-local.service uses journal+console which is still a pipe. So it would be actively wrong to set $TERM there as it is not actually a terminal. (See man systemd.exec).
You can create your own unit with Standard{ Output, Error}= tty and a setterm call, of course.