从Perl运行屏幕

Jus*_*tin 5 java linux bash perl gnu-screen

我有一个Jar文件,我想通过屏幕运行,虽然当我尝试打开Perl脚本时,一切似乎都运行良好,虽然当我这样top做时,我没有在列表中看到该过程,但如果我工作正常将命令复制粘贴到SSH会话中...

这是我正在使用的代码:
start.pl

# !/usr/local/bin/perl
system("cd /var/server/; screen java -Xmx1024M -Xms1024M -jar jarfile.jar > /dev/null 2>&1 &");

有人能指出这是为什么吗?

ESu*_*nik 6

问题是屏幕试图抓住终端,这在system命令的上下文中是不可能的.最简单的解决方案是通过添加-d -m选项以分离模式启动屏幕会话:

# !/usr/local/bin/perl
system("cd /var/server/; screen -d -m java -Xmx1024M -Xms1024M -jar jarfile.jar > /dev/null 2>&1 &");
Run Code Online (Sandbox Code Playgroud)