Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 屏幕GNU脚本Bash_Linux_Bash_Scripting_Gnu Screen - Fatal编程技术网

Linux 屏幕GNU脚本Bash

Linux 屏幕GNU脚本Bash,linux,bash,scripting,gnu-screen,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 -Djbo

我想做一个脚本,在启动电脑时自动执行任务。 主要的想法是使用屏幕来做这件事。 这是我写的,但不起作用。只是它构建了第一个会话,然后就什么都没有了。 这是密码

#!/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 &' 

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

此外,使用
-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个屏幕会话

我尝试过,但它显示“有一个屏幕在:2399.angular(08/09/17 16:01:43)(分离)”。这意味着它在后台启动了名为angular的屏幕实例。您确定第二个2个会话的命令实际工作吗?此外,如果它们返回,屏幕会话将立即退出,并且不会显示在列表中(
screen-ls
)。