Ubuntu设置开机启动脚本

想在开机的时候自动启动Minecraft的服务器,这样就可以不用每次开机都去手动启动了。

研究了一下如何在Ubuntu上设置开机启动自己写的Shell,来实现开机自动启动Minecraft server。

以我想启动Minecraft为例

1. 编写启动脚本

为了方便以后开服,我们先在/root/mc下面创建一个startServer.sh文件。

vim startServer.sh

根据自己情况填写
我这里想开机启动screen然后用screen启动游戏

screen_name="MC"   # 要建立的screen名字
screen -dmS $screen_name
cmd="cd /root/mc && java -jar fabric-server-launch.jar";  # 要执行的命令,要指明路径,不指明时默认是在 / 目录下
screen -x -S $screen_name -p 0 -X stuff "$cmd"  # 输入命令
screen -x -S $screen_name -p 0 -X stuff '\n'   # 回车执行

保存退出。

不过这种方式发送的命令不能太长,否则会导致脚本卡住。

如果需要发送一条很长的命令,或者连续发送许多条命令,最好单独写一个脚本,发送一个脚本命令给screen,让screen执行新的脚本。

2. 编辑 rc-local.service 文件

首先执行

sudo chmod 777 /lib/systemd/system/rc-local.service  #赋予rc-local.service修改权限
sudo vim /lib/systemd/system/rc-local.service

在rc-local.service文件尾部添加以下内容:

[Install]
WantedBy=multi-user.target
Alias=rc-local.service

3. 编辑 rc.local 文件

sudo vim /etc/rc.local

在里面填写

#!/bin/sh
echo "看到这行字,说明添加自启动脚本成功。" > /usr/local/test.log
cd /root/mc/
chmod 777 startServer.sh
./startServer.sh &
exit 0

给rc.local文件加上权限。

sudo chmod +x /etc/rc.local

3. 创建软链接

在 /etc/systemd/system/目录下创建软链接。Ubuntu创建软链接类似于Windows下创建快捷方式。

# 创建方式:ln -s 原目录 映射目录
sudo ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/
# 查看软链接 
ls -il

参考

ubuntu 20.04 | 设置开机启动脚本

[Ubuntu 实现shell文件的开机运行(从原理到实现)](


WriteBy: Tutu
CopyRight宣言: 本サイトに掲載された内容は下記に従う CC BY 4.0 著作権。 Tutu !
 前へ
2022-11-02 Tutu
次へ 
2022-10-31 Tutu
  目次