为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Freenas 11.2 我的 java 进程在离开监狱外壳时关闭

使用 Freenas 11.2 我的 java 进程在离开监狱外壳时关闭

慕尼黑5688855 2022-01-12 15:15:58
在过去的两周里,我一直在忙于弄清楚如何将我的 minecraft 服务器设置到我的 freenas 服务器上。当我进入监狱手动输入我的启动命令时,我能够让它启动并稳定运行:cd /root/Minecraft_Serverjava -Xmx4096M -Xms4096M -jar forge-1.12.2-14.23.4.2757-universal.jar然后关闭外壳。我试图自动化这个命令并将其放入 crontab 和所有内容中的 sh 文件中,但没有奏效,所以我决定升级到 11.2 看看是否有任何解决方案。现在主要问题已经是,如果我尝试在 shell 中手动运行我的命令,然后我离开 webui,它只会关闭服务器,这与 11.1 freenas 不同。有人在这里有更多想法吗?在与服务器相同的位置,我有一个带有此命令的 minecraft.sh 脚本。如果我手动运行脚本它可以工作,但如果我使用 crontab 它也不会启动它。我使用的corntab命令是:@reboot /root/Minecraft_Server/minecraft.sh我也试过直接输入命令,但这也没用。我什至尝试了 exec.poststart 但是当我将它定向到 /root/minecraft_Server/minecraft.sh 它也不会启动,它甚至不会再运行监狱
查看完整描述

2 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

在 relog 上使用“screen java ...”到 shell 执行 screen -x 以进入服务器 shell


查看完整回答
反对 回复 2022-01-12
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

您可以将 Java 命令配置为在 jail 启动时启动的服务。这样,Java 服务器就不依赖于 shell 或 webui。


基本上,创建一个usr/local/etc/rc.d/minecraftd包含以下脚本的文件:


#!/bin/sh

#

# PROVIDE: minecraftd

# REQUIRE: LOGIN DAEMON NETWORKING mountcritlocal

# KEYWORD: shutdown

#

# Use the following variables to configure the minecraft server. For example, to

# configure the ON/OFF knob variable:

# sysrc minecraftd_enable="YES"

#

# minecraftd_enable="YES"

# minecraftd_user_dir="/root/minecraft"

# minecraftd_jar_path="/root/minecraft/server.jar"

# minecraftd_java_opts="-Xms512M -Xmx1024M"


. /etc/rc.subr


name=minecraftd

rcvar=`set_rcvar`

pidfile=/var/run/minecraftd.pid


load_rc_config $name


start_cmd="${name}_start"


: ${minecraftd_enable="NO"}

: ${minecraftd_user_dir="/root/minecraft"}

: ${minecraftd_jar_path="/root/minecraft/server.jar"}

: ${minecraftd_java_opts="-Xms512M -Xmx1024M"}


minecraftd_start() {

    if [ -e $pidfile ]; then

        echo "$name already running."

    else

        echo "Starting $name..."

        /usr/sbin/daemon -f -p $pidfile \

            /usr/local/bin/java -Duser.dir=$minecraftd_user_dir \

            $minecraftd_java_opts \

            -jar $minecraftd_jar_path nogui

        echo "$name started."

    fi

}


run_rc_command $1

然后将服务配置为在启动时启动:


sysrc minecraftd_enable="YES"

并重新启动你的监狱。


查看完整回答
反对 回复 2022-01-12
  • 2 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信