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:
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
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:
#!/bin/bash
ao início de ftbstart.service
file After=
Type=
( Type=simple
e Type=forking
) User=
e Group=
ftbstart.service
e sstart.sh
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
Tags startup scripts gnu-screen systemd