“screen -dm” 和 “screen -Dm” 有什么区别

“screen -dm” 和 “screen -Dm” 有什么区别

我一直在寻找和screenoptions之间差异的解释。我知道这两个选项都用于使屏幕在后台运行/在创建后将其分离。我读到过差异与分叉有关,但我不明白。-dm-Dm

我用screen它来包含我的 Minecraft 服务器的控制台。当我直接在simplesystemd 服务中调用它时,一切都运行正常。但是,当我将调用移至脚本并从服务中调用该脚本时,服务会在脚本退出时退出,从而使用该ExecStop命令停止 Minecraft 服务器。谷歌搜索显示我应该使用forking服务来防止这种情况,但这并不能解决问题,而且我不能使用oneshot不退出的服务,因为我需要系统能够检测 Minecraft 服务器是否仍在运行。

我目前的调用screen方式如下:

screen -DmS minecraft java -jar server.jar nogui &

我使用来&分叉进程并防止屏幕冻结外壳。

由于服务因未正确分叉而失败,并且-Dm-dm选项之间的差异与分叉有关,因此我怀疑问题就出在这里。

有人可以向我解释一下这些选项之间的实际区别是什么,以及如何在分叉服务中正确使用屏幕?

提前致谢。

答案1

我只是在这里引用手册:

-d -m   Start screen in "detached" mode. This creates a new session but
        doesn't attach to it. This is useful for system startup scripts.

-D -m   This  also  starts  screen  in "detached" mode, but doesn't fork a new process.
        The command exits if the session terminates.

相关内容