0x1
我们一般使用 screen 是交互式运行的,大概分为以下几步:
-
手动启动一个 screen 窗口
screen -S test
-
进入到screen窗口,启动需要后台执行的任务
screen -r test vmstat 1 100 -S M
-
退出screen窗口,按住Ctrl 再分别按 a 和 d 即可
但是对于需要开机自启的服务,以前总是使用 nohup + & 的方式,是否可以更换为screen的方式呢?
0x2
通过查阅资料,非交互式使用screen也是可以的,操作方式如下:
screen_name="test"
screen -dmS $screen_name
screen -x -S $screen_name -p 0 -X stuff "sh /root/start.sh"
screen -x -S $screen_name -p 0 -X stuff $'\n'
上面先定义了screen的名字,接下来把命令发到这个screen中,基本上是固定格式。所以把这些内容放入 /etc/rc.local 文件即可
PS. 除了执行脚本外,发送的内容也可以是命令,但是当命令过长的时候貌似不会执行,所以更多的时候使用脚本是比较好的选择
评论