Some containers lack /dev/console, so when multi_log attempts to open

that device and write to it directly things can start going haywire.
Here we address this problem by sending console-bound output to stdout
and letting init take care of getting it to the console instead.
We already configure upstart with "console output", so we need only
change systemd to use "journal+console".
This commit is contained in:
Garrett Holmstrom 2013-09-20 16:04:49 -07:00
parent d44df6fd27
commit d1ba1ee6e0
5 changed files with 9 additions and 9 deletions

View File

@ -360,11 +360,11 @@ def multi_log(text, console=True, stderr=True,
if stderr:
sys.stderr.write(text)
if console:
# Don't use the write_file since
# this might be 'sensitive' info (not debug worthy?)
with open('/dev/console', 'wb') as wfh:
wfh.write(text)
wfh.flush()
# Some containers lack /dev/console, so we send output to
# stdout and configure upstart with "console output" and
# systemd with "journal+console" and let them take care of
# getting output to the console.
print text
if log:
if text[-1] == "\n":
log.log(log_level, text[:-1])

View File

@ -11,7 +11,7 @@ RemainAfterExit=yes
TimeoutSec=0
# Output needs to appear in instance console output
StandardOutput=tty
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target

View File

@ -11,7 +11,7 @@ RemainAfterExit=yes
TimeoutSec=0
# Output needs to appear in instance console output
StandardOutput=tty
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target

View File

@ -10,7 +10,7 @@ RemainAfterExit=yes
TimeoutSec=0
# Output needs to appear in instance console output
StandardOutput=tty
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target

View File

@ -11,7 +11,7 @@ RemainAfterExit=yes
TimeoutSec=0
# Output needs to appear in instance console output
StandardOutput=tty
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target