简体   繁体   中英

Redirect systemd script output to console

How can I redirect output of script which is run by systemd ExecStart script to boot console?

I need to debug what is wrong with script until boot but I can't use journalctl because it's embedded linux with ROM rootfs.

Now my .service file looks like:

[Unit]
Description=Init script
After=network.target
Before=getty@tty1.service

[Service]
Type=oneshot
ExecStart=/usr/lib/systemd/test_init_script
ExecStartPre=/usr/bin/echo -e \033%G
ExecReload=/bin/kill -HUP $MAINPID
WorkingDirectory=/
Enviroment=TERM=xterm

[Install]
WantedBy=multi-user.target

test_init_script:

#!/bin/sh -
echo "Test!"

And it didn't work, after boot I receive message:

#systemctl status test_init_script.service
test_init_script.service - Init script
 Loaded: loaded (/usr/lib/systemd/test_init_script.service)
 Active: failed (Result: exit-code) Since Thu 1970-01-01 08:26:03 CST; 19s ago
Process: 170 ExecStartOre=/usr/bin/echo -e -G (code=exited, status=203/EXEC)

Did anyone know how to redirect script output to terminal?

Ok, so I resolve this problem by building image with changed file:

/etc/journald.conf

Where I change storage option to volatile:

Storage=volatile

This option means that all journald data will be store in RAM so this is a workaround for read only file system.

Please refer to journald manual page to see more options.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM