远程执行脚本的时候,希望可以看到执行状态,但是又担心服务器连接断开,此时可以在screen运行程序,然后临时断开,后续回到screen可以查看产生的标准输出和错误日志
1. 新建screen
$ screen
# 或者
$ screen screen-name
# 然后可以执行任意命令
2. 退出screen
$ exit
3. 暂时离开screen
# 在screen内部
$ ctrl+a d
4. 查看有哪些screen
$ screen -ls
5. 回到已经存在的screen
每个screen只能一个终端连接:意思是只有Detached状态的screen才可以进去
$ screen -r screen-name
# or
$ screen -r
# 这个只有一个screen时才有效
背后的技术
本地套接字,使用本地套接字名字就可以直接连接
➜ ~ screen -ls
There is a screen on:
8328.ttys003.changqingzhaodeMacBook-Pro (Attached)
1 Socket in /var/folders/8z/3x7dsnzs0rl6jt2vj9v5t9sh0000gn/T/.screen.