在学习Linux以来,一直有一个问题困扰着我:
我们使用ssh远程连接运行程序时,当我们关闭ssh的窗口时,程序就会自动结束运行
就像之前搭建我的世界服务器时,需要将ssh窗口保持,一旦关闭ssh窗口,服务器就失去连接了。
当时在百度上搜索解决方法时,大家都是使用screen
命令来保证程序的继续运行
# 创建screen终端,并命名为minecraft
screen -S minecraft
# 在screen终端下按下Ctrl+a d键可退出终端
# 查看终端列表
screen -ls
# 进入终端
screen -r pid
# 或使用
screen -r -S minecraft
我的minecraft服务器是采用这种方式保证运行的,但是后面配置frp的时候,又遇到了新的问题:
如果服务器重启,怎么实现frp开机自启呢?
结合使用nginx以及ssh的经历,我想也许可以将frp设置为服务,经过一番尝试,终于成功了!下面以frps
为例,将frps
设置为服务。
都说Linux中一切皆文件,服务也是如此。
- 先创建service服务文件:
sudo vim /etc/systemed/system/frps.service
- 对
frp.service
文件进行编辑
[Unit]
Description=Frp Client
After=network.target
Wants=network.target
[Service]
Restart=on-failure
RestartSec=5
ExecStart=/home/frp/frps # 程序的绝对路径
[Install]
WantedBy=multi-user.target
- 刷新服务列表
systemctl daemon-reload
至此,我们已经将frps
添加为服务了,可以进行服务的相关操作了!
设置服务开机自启
systemctl enable frps
开启服务
systemctl start frps
停止服务
systemctl stop frps
重启服务
systemctl restart frps