用bash脚本创建screen并向其发送命令


为了利用服务器的多个cpu,我们经常需要同时创建多个screen,如果screen的个数非常多,手动创建会非常麻烦。
如何用bash脚本创建screen并向其发送命令?
如果我们直接在脚本里写 screen -S my_screen, 会导致脚本无法继续执行。为了使脚本执行下去,创建screen的具体代码如下:

screen_name=$"my_screen"
screen -dmS $screen_name

现在,我们就已经创建了一个名为 my_screen 的窗口。然后,我们需要向其发送具体的命令。我们用如下命令:

cmd=$"java Test";
screen -x -S $screen_name -p 0 -X stuff "$cmd"
screen -x -S $screen_name -p 0 -X stuff $'\n'

这样,我们就向screen发送了一条java Test命令了。
如果要退出窗口,则再向其发送一条 exit 命令即可

注意这种方式发送的命令不能太长,否则会导致脚本卡住。

如果需要发送一条很长的命令,或者连续发送许多条命令,最好单独写一个脚本,发送一个脚本命令给screen,让screen执行新的脚本。

声明:小小博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 用bash脚本创建screen并向其发送命令


Carpe Diem and Do what I like