Você precisa executá-lo como
bash Check.sh start
... porque nada é feito se [ "$1" != start ]
.
Além disso, esta linha
if ps -ef | grep minecraft_server.jar | grep -v -q grep ; then
deve ser
if ps -ef | grep FTBServer.jar | grep -v -q grep ; then
Algumas outras notas:
- Use matrizes para argumentos Bash.
- Citar variáveis quando elas são usadas.
- Use
[[
em vez de [
.
-
if
de correção de linha, conforme mostrado acima.
Então, uma versão mais correta seria:
JAVA=(java -Xms512M -Xmx3072M -XX:PermSize=128m -jar FTBServer.jar nogui)
DIR="/home/jon/FTB/FTBnew"
if [[ "$1" == start ]]; then
if ps -ef | grep FTBServer.jar | grep -v -q grep; then
echo "Minecraft is already running"
else
echo "Starting!"
cd "$DIR" &&
screen -dmS minecraft "${JAVA[@]}"
sleep 7
if ps -ef | grep FTBServer.jar | grep -v -q grep; then
echo "Minecraft server started successfully"
else
echo "Minecraft server failed to start"
fi
fi
fi