我正在尝试在 Ubuntu 20.04.3 Server 启动时在后台运行一个脚本。我尝试了 &、nohup 和 systemd 配置的不同组合,但没有成功。目前,如果我在服务上运行 systemctl start,将创建 output.log 并将其设置为写保护。如果我运行,ps -aux | grep java
只会列出 grep。如果我手动运行脚本,它会起作用,但可能不在后台,因为直到我使用 ^C 时才会再次收到提示。
要运行的脚本
#!/bin/sh
cd "${0%/*}"
pwd
if ! grep -q "eula=true" eula.txt; then
echo "Do you agree to the Mojang EULA available at https://account.mojang.com/documents/minecraft_eula ?"
read -n 1 -p "[y/n] " EULA
if [ "$EULA" = "y" ]; then
echo "eula=true" > eula.txt
echo
fi
fi
if pgrep -x "start.sh" > /dev/null
then
echo "Running"
else
java -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -Xmx6144M -Xms4096M -jar forge-1.16.5-36.1.16.jar nogui > output.log &
fi
服务
[Unit]
After=network.target
[Service]
Type=simple
ExecStart=nohup /usr/local/bin/FTB/startFTBServer.sh
TimeoutStartSec=0
[Install]
WantedBy=default.target