屏幕GNU脚本Bash

时间:2017-09-08 18:44:44

标签: linux bash scripting gnu-screen

我想做一个脚本,在我启动电脑时自动执行任务。 主要的想法是使用屏幕来做到这一点。 我写了这个,但它不起作用。只有它建立了第一个会话,然后再没有了。 这是代码

#!/bin/bash
screen -dmS angular sh -c 'cd Documents/segdet; ng serve --env=local'
screen -dmS jboss1 sh -x -c 'cd Documents/keycloak-2.3.0.Final/bin; ./standalone.sh -Djboss.socket.binding.port-offset=100 -b 0.0.0.0 &' 
screen -dmS jboss2 sh -x -c 'cd Documents/wildfly-10.1.0.Final/bin; ./standalone.sh -b 0.0.0.0 &' 

1 个答案:

答案 0 :(得分:1)

您需要使用屏幕-d选项让屏幕会话在启动后断开连接,以便移动到脚本中的下一个。

使用-S对于命名会话非常有用,这样您以后就可以连接到正确的会话。

这样的事情:

#!/bin/bash
screen -dmS angular sh -c 'cd Documents/file1; ng serve --env=local' 
screen -dmS jboss1 sh -x -c 'cd Documents/file2/bin; ./standalone.sh -Djboss.socket.binding.port-offset=100 -b 0.0.0.0 &' 
screen -dmS jboss2 sh -x -c 'wil' 'cd Documents/file3/bin; ./standalone.sh -b 0.0.0.0 &'

这将启动名为angular,jboss1和jboss2

的3个屏幕会话