screen实现一个类似windows中最小化运行的效果,可以在后台运行,之后想用时再调到前台。其实一直想学学怎么用的,但一直没什么契机。
其实常用的命令就几个。(注意参数大小写有区别)
screen -S yourname -> 新建一个叫yourname的session screen -ls -> 列出当前所有的session screen -r yourname -> 回到yourname这个session screen -d yourname -> 远程detach某个session screen -d -r yourname -> 结束当前session并回到yourname这个session
在screen中使用快捷键ctrl+a+d,退出当前screen并在后台运行,使用ls命令可以看到处于detached状态
在screen中输入exit,退出并删除当前screen
在使用过程中发现了几点问题。
1、可以使用同名的screen,但是会分配不同的pid,可以ls显示具体的session-id。显示的格式时pid.name
2、对于显示已经Attached但是又没有在前台使用的screen无法进行连接 ,可以使用
screen -D -r <session-id>
命令。相当于把前一用户踢掉。
来解析一条比较长的命令,最近折腾泰拉瑞亚服务器找到一条启动命令(https://www.cnblogs.com/roadwide/p/12673229.html)
/usr/bin/screen -dmS terraria /bin/bash -c "/opt/terraria/TerrariaServer.bin.x86_64 -config /opt/terraria/serverconfig.txt"
-d <作业名称> 将指定的screen作业离线。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-S <作业名称> 指定screen作业的名称。
/bin/bash -c 这部分不明白是什么意义。
bash -c "cmd string"
-c If the -c option is present, then commands are read from the first non-option argument command_string. If there are arguments after the command_string, they are assigned to the positional parameters, starting with $0.
参考文章:
https://man.linuxde.net/screen