___ qstntxt ___

Estou tentando conseguir um serviço systemd para funcionar por um tempo agora, mas sem sorte. O que estou tentando fazer é criar um script de inicialização que iniciará um programa java para um servidor modeci- Minecraft.

Aqui está o arquivo do serviço systemd chamado %code% . Ele é colocado em %code% e tem permissões 744 (embora eu tenha testado várias permissões diferentes).

%pre%

Então ExecStart inicia outro script com permissões 755 chamado %code% que contém as linhas:

%pre%

Os ecos estão lá para fins de depuração. O script é executado todo o tempo, como

%pre%

mostra todos os ecos de 1 a 4, no entanto, a lista de telas não exibe nenhuma tela ativa após

%pre%

No entanto, se eu executar o script %code% da linha de comando %code% , ele funcionará perfeitamente e não gerará problemas.

Coisas que eu tentei até agora:

  • adicionando %code% ao início de %code% file
  • removendo %code%
  • alterando / removendo %code% ( %code% e %code% )
  • alterar / remover %code% e %code%
  • alterando as permissões de arquivo em %code% e %code%
  • colocando %code%

Eu também me certifico de digitar:

%pre%

e

%pre%

cada vez que eu testo algo no arquivo %code% , etc etc e nada parece funcionar.

Eu também tentei apenas adicionar a linha

%pre%

para ftbstart.service mas ainda não executa o serviço de tela, mas

%pre%

apenas mostra algo como:

%pre%

No entanto, se eu substituir o %code% em %code% por um como:

%pre%

então FUNCIONA magicamente! Ele cria uma tela que pode ser anexada e mostra o monitor de recursos de linha de comando superior.

Então, desculpe pela longa pergunta, mas alguém pode me ajudar a descobrir o que estou fazendo de errado? Meu palpite é que, porque eu estou começando outro script, em vez de um programa que algo está bagunçando em algum lugar, mas não tenho certeza. Obrigado por qualquer ajuda que você possa fornecer.

P.S. Se for necessário, aqui está o script de inicialização iniciado por %code% . Eu não criei isso, é o script fornecido que veio com o modpack de minecraft: link

    
___ tag123systemd ___ systemd é uma coleção de daemons, bibliotecas e ferramentas para gerenciamento de sistemas. O sistema Upstart do Ubuntu foi substituído pelo systemd, começando com o Ubuntu 15.04. ___ tag123gnuscreen ___ screen (GNU Screen) é um gerenciador de janelas em tela cheia que multiplexa um terminal físico entre vários processos (normalmente shells interativos). ___

3

Estou tentando conseguir um serviço systemd para funcionar por um tempo agora, mas sem sorte. O que estou tentando fazer é criar um script de inicialização que iniciará um programa java para um servidor modeci- Minecraft.

Aqui está o arquivo do serviço systemd chamado ftbstart.service . Ele é colocado em /etc/systemd/system/ e tem permissões 744 (embora eu tenha testado várias permissões diferentes).

[Unit]
Description=FTB Server
After=network.target

[Service]
Type=forking
User=root
Group=root
RemainAfterExit=yes

ExecStart=/usr/games/ftb/sstart.sh
ExecStop=/usr/games/ftb/sstop.sh

[Install]
WantedBy=multi-user.target

Então ExecStart inicia outro script com permissões 755 chamado sstart.sh que contém as linhas:

#!/bin/bash

echo I made it to 1
mount -t tmpfs -o size=1024M tmpfs /usr/games/ftb/current/
echo I made it to 2
cp -r /usr/games/ftb/beyond/. /usr/games/ftb/current/
echo I made it to 3
/usr/bin/screen -S ftb -d -m /usr/games/ftb/current/ServerStart.sh
echo I made it to 4

Os ecos estão lá para fins de depuração. O script é executado todo o tempo, como

journalctl -u ftbstart

mostra todos os ecos de 1 a 4, no entanto, a lista de telas não exibe nenhuma tela ativa após

systemctl restart ftbstart

No entanto, se eu executar o script /usr/games/ftb/sstart.sh da linha de comando /bin/bash , ele funcionará perfeitamente e não gerará problemas.

Coisas que eu tentei até agora:

  • adicionando #!/bin/bash ao início de ftbstart.service file
  • removendo After=
  • alterando / removendo Type= ( Type=simple e Type=forking )
  • alterar / remover User= e Group=
  • alterando as permissões de arquivo em ftbstart.service e sstart.sh
  • colocando ExecStart=/bin/bash /usr/games/ftb/sstart.sh

Eu também me certifico de digitar:

systemctl daemon-reload

e

systemctl restart ftbstart

cada vez que eu testo algo no arquivo ftbstart.service , etc etc e nada parece funcionar.

Eu também tentei apenas adicionar a linha

ExecStart=/usr/bin/screen -S ftb -d -m /usr/games/ftb/current/ServerStart.sh

para ftbstart.service mas ainda não executa o serviço de tela, mas

systemctl status ftbstart

apenas mostra algo como:

Active: active (exited) since Thu 2017-09-07 20:56:35 UTC; 32min ago

No entanto, se eu substituir o ExecStart= em ftbstart.service por um como:

ExecStart=screen -S top -d -m /usr/bin/top

então FUNCIONA magicamente! Ele cria uma tela que pode ser anexada e mostra o monitor de recursos de linha de comando superior.

Então, desculpe pela longa pergunta, mas alguém pode me ajudar a descobrir o que estou fazendo de errado? Meu palpite é que, porque eu estou começando outro script, em vez de um programa que algo está bagunçando em algum lugar, mas não tenho certeza. Obrigado por qualquer ajuda que você possa fornecer.

P.S. Se for necessário, aqui está o script de inicialização iniciado por sstart.sh . Eu não criei isso, é o script fornecido que veio com o modpack de minecraft: link

    
por brdagr 08.09.2017 / 00:02

0 respostas