rc.local output does not go to console
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| | systemd (Ubuntu) |
Low
|
Martin Pitt | ||
Bug Description
provided is user-data that should write:
[stdout] Tue, 23 Jun 2015 20:17:52 +0000 ====== successfull boot 1 =======
to the console on the first boot.
currently in wily, rc.local's output is not being written to the console, so you wont see this.
Note, that because of bug 1468103, you wont see it on first boot. If this bug were fixed then you'd see it on reboots.
Related bugs:
* bug 1468103: rc.local runs too early.
ProblemType: Bug
DistroRelease: Ubuntu 15.10
Package: systemd 220-7ubuntu1
ProcVersionSign
Uname: Linux 3.19.0-22-generic x86_64
ApportVersion: 2.17.3-0ubuntu4
Architecture: amd64
Date: Tue Jun 23 20:26:30 2015
Ec2AMI: ami-00000434
Ec2AMIManifest: FIXME
Ec2Availability
Ec2InstanceType: m1.small
Ec2Kernel: aki-00000002
Ec2Ramdisk: ari-00000002
Lsusb: Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MachineType: OpenStack Foundation OpenStack Nova
ProcEnviron:
TERM=xterm-
PATH=(custom, no user)
XDG_RUNTIME_
LANG=en_US.UTF-8
SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=
SourcePackage: systemd
UdevLog: Error: [Errno 2] No such file or directory: '/var/log/udev'
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 01/01/2011
dmi.bios.vendor: Bochs
dmi.bios.version: Bochs
dmi.chassis.type: 1
dmi.chassis.vendor: Bochs
dmi.modalias: dmi:bvnBochs:
dmi.product.name: OpenStack Nova
dmi.product.
dmi.sys.vendor: OpenStack Foundation
| Scott Moser (smoser) wrote : | #1 |
| description: | updated |
| Changed in systemd (Ubuntu): | |
| status: | New → Confirmed |
| description: | updated |
| Martin Pitt (pitti) wrote : | #2 |
| Changed in systemd (Ubuntu): | |
| importance: | Undecided → High |
| Changed in systemd (Ubuntu): | |
| importance: | High → Low |
| Scott Moser (smoser) wrote : | #3 |
you can test easily enough on a local vm.
previously output of things run in rc.local went to wherever /dev/console went.
that meant if you ran 'echo hello world' from rc.local when 'console=ttyS0' on the kernel command line, you'd dsee 'hello world' on the serial console.
this is important to maintain for automated testing and I would suspect for real world use cases where people write some human friendly status or information from /etc/rc.local.
| Martin Pitt (pitti) wrote : | #4 |
Ah, understood. I was misled as your userdata explicitly sends output to /dev/console (or whatever you configured). This can be done with Standard{
| Changed in systemd (Ubuntu): | |
| status: | Confirmed → Triaged |
| assignee: | nobody → Martin Pitt (pitti) |
| Martin Pitt (pitti) wrote : | #5 |
| Changed in systemd (Ubuntu): | |
| status: | Triaged → Fix Committed |
| Launchpad Janitor (janitor) wrote : | #6 |
This bug was fixed in the package systemd - 221-1ubuntu2
---------------
systemd (221-1ubuntu2) wily; urgency=medium
* Disable test-netlink during package build, fails on some buildds.
systemd (221-1ubuntu1) wily; urgency=medium
* Merge with Debian unstable. Remaining Ubuntu changes:
- Hack to support system-image read-only /etc, and modify files in
/
- Keep our much simpler udev maintainer scripts (all platforms must
support udev, no debconf).
- initramfs init-top: Drop scsi_wait_scan and udevadm settle, we do that
in a more sensible way with wait-for-root.
- initramfs init-bottom: If LVM is installed, settle udev,
otherwise we get missing LV symlinks. Workaround for LP #1185394.
- Add debian/
dependencies to "lvm2" which is handled with udev rules in Ubuntu.
- Add debian/
script.
- Provide shutdown fallback for upstart. (LP: #1370329)
- debian/
really support "allow-hotplug" in Ubuntu at the moment, so we need to
deal with "auto" devices appearing after "/etc/init.
already ran. (LP: #1374521) Also run ifup in the background during boot,
to avoid blocking network.target. (LP: #1425376)
- ifup@.service: Drop dependency on networking.service (i. e.
/
This avoids unnecessary dependencies/
cycles if hooks wait for other interfaces to come up (like ifenslave
with bonding interfaces). (LP: #1414544)
- Add Get-RTC-
Ubuntu we currently keep the setting whether the RTC is in local or UTC
time in /etc/default/rcS "UTC=yes|no", instead of /etc/adjtime.
(LP: #1377258)
- Put session scopes into all cgroup controllers. This makes unprivileged
user LXC containers work under systemd. (LP: #1346734)
- systemctl: Don't forward telinit u to upstart. This works around
upstart's Restart() always reexec'ing /sbin/init on Restart(), even if
that changes to point to systemd during the upgrade. This avoids running
systemd during a dist-upgrade. (LP: #1430479)
- Drop hwdb-update dependency from udev-trigger.
introduced in v219-stable. This causes udev and plymouth to start too
late and isn't really needed in Ubuntu yet as we don't support stateless
systems yet and handle hwdb.bin updates through dpkg triggers. This can
be dropped again with initramfs-tools 0.117.
- Lower Breaks: to plymouth version which has the udev inotify fix in
Ubuntu.
- Lower apparmor Breaks: to the Ubuntu version that dropped $remote_fs.
- Change systemd-sysv's conflicts to upstart-sysv. (LP: #1422681)
Upgrade fixes, keep until 16.04 LTS release:
- systemd Conflicts/
- Remove obsolete systemd-logind upstart job.
- Clean up obsolete /etc/u...
| Changed in systemd (Ubuntu): | |
| status: | Fix Committed → Fix Released |


So the gist of this is that rc.local writes to /dev/console but you don't see this? I added this to /etc/rc.local on a normal installation:
echo hello_stdout
echo hello_console > /dev/console
and "systemctl start rc-local.service" does print the hello_console on the console (you need to run it on a VT, you won't see it in X), and the hello_stdout goes to the journal. So apparently I'm missing something.
How do you test this exactly? Some OpenStack instance, and nova console-log? Local VM? something else?