O processo do Systemd é encerrado imediatamente após o início

2

Eu sou extremamente novo no systemd e estou tentando escrever um arquivo .service que execute o meu script php. O script é executado e precisa aguardar a entrada de outra pessoa para fazer qualquer coisa, e permanece aberto até que eu ctrl-C.

edit: colocou isso aqui para esclarecer meu problema

Este serviço sai imediatamente após o início, a menos que a opção RemainAfterExit esteja definida como true. O código de saída é 203. Com RemainAfterExit, ele não sai, mas nunca está em execução. Eu estou em uma perda, estou com medo.

Aqui está uma versão generalizada do que tenho:

[Unit]   
Description=foo
Wants=foo.service

[Service]   
WorkingDirectory=/home/foo/bar
RemainAfterExit=true
ExecStart=/home/foo/bar/foo.php
Restart=on-failure

[Install]
WantedBy=multi-user-.target

O que eu quero fazer:

Inicia o script php depois de outro serviço requerido (Wants / After?)

Mantenha o script php em execução, seja em uma janela de terminal ou no plano de fundo (simples / bifurcação?)

Não saia. Reinicie se ele falhar (em caso de falha). Se eu quero que esteja sempre funcionando, é sempre apropriado?

Se possível, eu preferiria raciocinar porque este serviço está escrito de forma incorreta / incorreta e o que eu preciso fazer em vez de código fixo. Os links são especialmente bem-vindos enquanto eu aprendo.

    
por ridiculoushat 05.05.2018 / 22:09

1 resposta

0

Resolvido. Houve dois problemas.

Problema 1: ExecStart = / home / foo / bar / foo.php

Isso precisa ser ExecStart = / user / bin / (phpversion) -f /home/foo/bar/foo.php Erro estúpido!

Edição 2: Eu tive que parar o processo manualmente, systemctl stop * .service, systemctl daemon-reload, systemctl start * .service. Ele correu e meu script recebeu / respondeu a outros clientes com sucesso.

    
por 06.05.2018 / 13:42