Перенаправить вывод сценария systemd на консоль

Как я могу перенаправить вывод скрипта, запускаемого скриптом systemd ExecStart, на загрузочную консоль?

Мне нужно отладить, что не так со сценарием до загрузки, но я не могу использовать journalctl, потому что это встроенный Linux с ROM rootfs.

Теперь мой файл .service выглядит так:

[Unit]
Description=Init script
After=network.target
[email protected]

[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!"

И это не сработало, после загрузки я получаю сообщение:

#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)

Кто-нибудь знал, как перенаправить вывод скрипта на терминал?


person Tyrreus    schedule 18.02.2015    source источник
comment
Вы видели это? unix.stackexchange.com/questions/ 20399/   -  person simurg    schedule 20.02.2015


Ответы (1)


Итак, я решаю эту проблему, создавая образ с измененным файлом:

/etc/journald.conf

Где я меняю вариант хранения на volatile:

Storage=volatile

Этот параметр означает, что все данные журнала будут храниться в ОЗУ, поэтому это обходной путь для файловой системы только для чтения.

Пожалуйста, обратитесь к странице руководства journald, чтобы увидеть дополнительные параметры.

person Tyrreus    schedule 23.02.2015