arch linux autostart Programa interativo Escrito em c ++ na inicialização antes de tty1 aparecer

1

Estou tentando iniciar automaticamente um programa C ++ interativo na inicialização antes que TTY1 apareça.

Eu criei um arquivo chamado /etc/systemd/system/myapp.service com o seguinte conteúdo:

[Unit]
Description=myapp

[Service]
Type=oneshot
ExecStart=/home/xxx/myapp.exe start
StandardOutput=tty
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

E depois correu

sudo systemctl enable myapp

Infelizmente, isso não funciona como esperado. Não consigo interagir com myapp e não quero que o TTY1 apareça até o fim do programa

UPDATE: Meu aplicativo agora funciona antes do TTY aparecer. /etc/systemd/system/myapp.service agora contém:

[Unit]
Description=myapp
After=sysinit.target

[Service]
Type=oneshot
StandardOutput=tty
RemainAfterExit=yes
ExecStart=/home/xxx/myapp.exe start

[Install]
WantedBy=multi-user.target

Mas ainda não consigo interagir com o meu programa.

    
por user251433 05.09.2013 / 00:29

1 resposta

2

Consegui interagir com meu programa adicionando uma linha TTY StandardInput ao serviço systemd e desabilitando o serviço systemd TTY1.

Aqui estão os conteúdos finais de /etc/systemd/system/myapp.service :

[Unit]
Description=myapp
After=sysinit.target

[Service]
Type=oneshot
StandardInput=tty
StandardOutput=tty
RemainAfterExit=yes
ExecStart=/home/xxx/myapp.exe start

[Install]
WantedBy=multi-user.target

E aqui está o comando para desabilitar o serviço systemd TTY1:

sudo systemctl disable [email protected]

Agora, o programa aparece interativamente em TTY1.

    
por 06.09.2013 / 21:00