Changed keep-running (#146)

* Changed keep-running

* fix
This commit is contained in:
SB-Reborn 2024-07-24 10:08:31 +08:00 committed by GitHub
parent 040c788f30
commit da27b9ec52
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3,6 +3,9 @@ title: 如何保持服务器在 Linux 服务器中后台运行
sidebar_position: 3
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# 如何保持服务器在 Linux 服务器中后台运行
由于Linux的会话机制手动启动的服务端会在ssh断开连接之后停止运行所以我们需要服务端保持后台运行。
@ -11,9 +14,25 @@ sidebar_position: 3
使用screen创建一个虚拟的窗口运行服务端首先安装screen在终端输入
```
sudo apt install screen -y
```
确保你的系统上有`screen`包,没有的话安装它们:
<Tabs>
<TabItem value="debian" label="Debian/Ubuntu Linux" default>
```bash
apt-get install screen
```
</TabItem>
<TabItem value="redhat" label="CentOS/Redhat Linux">
```bash
yum install screen
```
</TabItem>
<TabItem value="arch" label="Arch Linux">
```bash
pacman -Sy screen
```
</TabItem>
</Tabs>
screen 的基础指令:
@ -25,7 +44,11 @@ screen -D xxx # 踢出正在使用 xxx 窗口的用户
screen -S xxx -X quit # 删除 xxx 窗口(在 screen 中输入 exit 也可以删除)
```
在 screen 中启动服务端,在 screen 中时,按键盘上的 Ctrl + A + D 即可返回原窗口。
:::info
重新连接到screen时可以使用 `screen -Dr xxx`指令,意为踢出正在使用 xxx 窗口的用户并回到 xxx 窗口
:::
在 screen 中启动服务端,在 screen 中时,按快捷键 `Ctrl + A + D` 即可返回原窗口。
推荐原因:后台运行的同时还可以在服务端控制台中查看日志,打指令
@ -33,15 +56,15 @@ screen -S xxx -X quit # 删除 xxx 窗口(在 screen 中输入 exit 也可以
例如mcsm简单无脑可视化
## 方法三 Systemctl
## 方法三 Systemd
使用vim 创建 mc.service
使用 vim 命令创建 mc.service 单元文件
```
vim /etc/systemd/system/mc.service
```bash
vim ~/.config/systemd/user/mc.service
```
vim中的内容按以下配置
文件中的内容按以下配置
```
[Unit]
@ -49,14 +72,6 @@ Description=Minecraft Server
After=network.target
[Service]
User=root
Nice=5
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=这里填工作目录路径
ExecStart=这里填启动命令
ExecStop=/bin/kill -SIGINT $MAINPID
@ -68,19 +83,23 @@ WantedBy=multi-user.target
配置完成后输入以重新加载:
```
```bash
systemctl daemon-reload
```
然后启动服务器并设置开机启动,先后输入:
```
systemctl start mc.service
systemctl enable mc.service
```bash
systemctl --user start mc.service
systemctl --user enable mc.service
```
_可以通过`systemctl --user status mc.service`查看服务运行状态。_
[详细设置说明](https://blog.csdn.net/WHQ78164/article/details/132956725)
[Arch wiki 上的教程](https://wiki.archlinuxcn.org/wiki/Systemd#%E7%BC%96%E5%86%99%E5%8D%95%E5%85%83%E6%96%87%E4%BB%B6)
优点:可以实现自动重启,开机自启等操作
缺点:无法进入控制台打指令