Ubuntu 服务器 - 如何在启动时运行持久脚本?

Ubuntu 服务器 - 如何在启动时运行持久脚本?

我正在尝试在 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

相关内容