使用带有 init.d 的屏幕时出现意外行为

使用带有 init.d 的屏幕时出现意外行为

我在启动时添加了一个 shell 脚本,命令如下:

su - root -c "/usr/bin/screen -dmS SomeServer java -jar /home/SomeServer.jar"

当我正常运行此命令时,screen它已创建并运行。但是当我screen -ls在重启后使用时,我什么也看不到。

有趣的是SomeServer.jar它内置了 http 服务器,当我使用时netstat我可以看到一个 Java 进程正在监听这个端口。

我正在使用 Ubuntu 14.04。

答案1

我看不出上述命令如何在 Ubuntu 上运行:'输入 root 密码后会提示您输入 root 密码。祝您在 Ubuntu 中好运。

上述命令应改为:

 sudo /usr/bin/screen -dmS SomeServer java -jar /home/SomeServer.jar

不带引号。我还想问你:如果你已经创建了一个启动脚本来执行此操作,为什么你需要以 root 身份执行上述命令?即使你包含上面的行,它也会自动执行,而不需要须藤限定符,内部/etc/rc.local,一种在启动时快速而简单地启动它的方法。

我无法测试上述命令,所以我依靠你告诉我是否需要进行更多修复。

答案2

假设您帖子中的“重新启动”不是错误输入,那么您的问题是屏幕在重新启动周期后不会持续存在。

如果这是个错误,而且您实际上还没有重新启动,那么很可能您没有screen -ls以 root 身份运行 - screen 将只显示当前用户的活动 screen 会话。使用sudo su -切换到 root 然后重试。

相关内容