我在启动时添加了一个 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 然后重试。