dtach в служебном файле systemd

поскольку экран в сочетании с библиотекой python-newt вызывает segfault в нашей текущей настройке, я искал программу для замены экрана. Система абсолютно минимальна и нужна только для выполнения python-скрипта, устанавливающего будущую ОС.

Я нашел dtach (http://linux.die.net/man/1/dtach ). Я мог бы запустить желаемый сценарий с помощью команды в работающем сеансе tty.

dtach -c /tmp/test /usr/local/bin/master.py

Я также мог бы подключиться к работающему сеансу и т. д. Кроме того, мне нужно запустить ut при загрузке, поскольку пользователь перед экраном должен получить возможность вводить значения, если они отсутствуют.

Я сделал следующий файл службы systemd, который находится в /etc/systemd/system/master.service.

[Unit]
Description=Job that starts the master.py
Requires=premaster.service
After=premaster.service

[Service]
Type=simple
ExecStart=/usr/bin/dtach -c /tmp/master /usr/local/bin/master.py

[Install]
WantedBy=multi-user.target

а также включил его при загрузке с помощью

systemctl enable /etc/systemd/system/master.service

premaster находится в /etc/init.d/premaster и выполняется как положено

Когда я запускаю master.service, я получаю следующую ошибку

/usr/bin/dtach: Attaching to a session requires a terminal

person user3694354    schedule 15.01.2016    source источник


Ответы (1)


Исправлено t со следующими файлами:

мастер.сервис

[Unit]
Description=Job that starts the master.py
Requires=opsi.service
After=opsi.service
[email protected]

[Service]
Environment=TERM=linux
Type=simple
ExecStart=/usr/local/bin/master.sh
StandardInput=tty
StandardOutput=tty
TTYPath=/dev/tty6

[Install]
WantedBy=multi-user.target

мастер.ш

#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

vt=6

sleep 1
chvt $vt 
sleep 1 
chvt $vt 

. /etc/environment
export LANGUAGE
export LANG
export LC_ALL

dtach -A /tmp/bootimage master.py

С этой конфигурацией он работает и загружается при запуске прямо в TTY6. Кроме того, он интерактивен на тот случай, если пользователю нужно ввести что-то, чего не хватает в конфигурации.

Может кому понадобится.

person user3694354    schedule 18.01.2016