首页 > 编程语言 >screen + rc.local 实现开机自启动多个窗口命令 开机自启动Screen并在后台运行程序

screen + rc.local 实现开机自启动多个窗口命令 开机自启动Screen并在后台运行程序

时间:2023-01-06 10:24:47浏览次数:45  
标签:screen name1 sh 开机 stuff rc 自启动

 

screen + rc.local 实现开机自启动多个窗口命令
开机自启动Screen并在后台运行程序
=========================================================================================================


#变量screen名称
screen_name1="frp"
#变量两条命令
cmd1="cd /root"
cmd2="./sipp2022.sh"
#创建screen但不进入
screen -dmS $screen_name1
#执行指令、输入回车分割。
screen -x -S $screen_name1 -p 0 -X stuff "$cmd1"
screen -x -S $screen_name1 -p 0 -X stuff '\n'
screen -x -S $screen_name1 -p 0 -X stuff "$cmd2"
screen -x -S $screen_name1 -p 0 -X stuff '\n'
#退出?
screen -x -S $screen_name1 -p 0 -X stuff "exit"


=========================================================================================================

touch fiile_autostart.sh # 建一个脚本文件
chmod 777 file_autostart.sh # 设置全部权限
vim file_autostart.sh
# 进行编辑
screen_name="file" # 要建立的screen名字
screen -dmS $screen_name
cmd="/root/filebrowser -p 20333 -a 0.0.0.0" # 要执行的命令,要指明路径,不指明时默认是在 / 目录下
screen -x -S $screen_name -p 0 -X stuff "$cmd" # 进行执行
screen -x -S $screen_name -p 0 -X stuff $'\n'


vim /etc/rc.d/rc.local
/root/file_autostart.sh # 增加一行

chmod +x /etc/rc.d/rc.local # 增加可执行权限

============================================================================================================

 

先写命令脚本:

(这是一个启动frp的脚本)

#变量screen名称
screen_name1="frp"
#变量两条命令
cmd1="cd /home/ubuntu/frp"
cmd2="./frpc -c frpc.ini"
#创建screen但不进入
screen -dmS $screen_name1
#执行指令、输入回车分割。
screen -x -S $screen_name1 -p 0 -X stuff "$cmd1"
screen -x -S $screen_name1 -p 0 -X stuff '\n'
screen -x -S $screen_name1 -p 0 -X stuff "$cmd2"
screen -x -S $screen_name1 -p 0 -X stuff '\n'
#退出?
screen -x -S $screen_name1 -p 0 -X stuff "exit"

 

========================================================================================
用cron设置开机自启动:

crontab -e
在打开的命令行终添加执行上面指令的命令(上面的命令文件要拥有执行权限)

bash /home/ubuntu/startfrp.sh
=========================================================================================

附上一些screen的操作提示:

[screen help]

screen -S <screen_name>
screen -r #reconnect screen (if you only have one) / show screen list
screen -ls #show screen list

[in screen]
ctrl - D #close screen
ctrl - A D #put screen in background

screen -ls
其中:32307为PID,tool为Name。

回到这个虚拟终端的命令即为:

screen -r 32307
# 或(在没有重名虚拟终端情况下)
screen -r tool
如果使用大些的-R,和-r类似,但是没有对应名称的PID或者Name时,会自动创建新的虚拟终端。

5. 清除终端

有时候,我们的进程已经“守护”完毕,不需要这个虚拟终端了,也就是需要释放资源,如何操作呢?

比较推荐的方法,是进入对应虚拟终端,然后输入:

# 退出终端
exit
之后,就会回到主终端。

==========================================================================================


https://zhuanlan.zhihu.com/p/405968623

标签:screen,name1,sh,开机,stuff,rc,自启动
From: https://www.cnblogs.com/wendaozhe/p/17029643.html

相关文章