【发布时间】:2018-11-19 00:00:35
【问题描述】:
我目前在 ubuntu 服务器 18.04 LTS 上托管我的世界服务器。我有一个 .sh 脚本来启动服务器的 java 文件,我想在启动时运行它,以便我的世界服务器在物理服务器启动时启动。我希望通过 /etc/rc.local 做到这一点。但是,我在该位置没有看到 rc.local。 这个版本的 ubuntu 是在不同的位置,还是我应该使用完全不同的方法在启动时运行这个 .sh?
【问题讨论】:
我目前在 ubuntu 服务器 18.04 LTS 上托管我的世界服务器。我有一个 .sh 脚本来启动服务器的 java 文件,我想在启动时运行它,以便我的世界服务器在物理服务器启动时启动。我希望通过 /etc/rc.local 做到这一点。但是,我在该位置没有看到 rc.local。 这个版本的 ubuntu 是在不同的位置,还是我应该使用完全不同的方法在启动时运行这个 .sh?
【问题讨论】:
Ubuntu 18.04 上没有“/etc/rc.local”文件,但是你可以创建它。
使用文本编辑器创建文件:
sudo nano /etc/rc.local
粘贴以下行并将“COMMANDS”替换为系统启动时要执行的命令:
#!/bin/sh -e
COMMANDS
exit 0
添加文件的执行权限:
chmod +x /etc/rc.local
【讨论】:
sudo chmod u+x /etc/rc.local(注意u+x)而不是sudo chmod +x /etc/rc.local(只是+x),这样只有root 'u'ser 可以获得对该文件的可执行访问权限,而不是任何人,我认为这可能是一个安全问题。
为此设置一个 crontab
确保文件是可执行的:
chmod +x /path_to_you_file/your_file/file.sh
编辑 crontab 文件:
crontab -e
然后添加:
@reboot /path_to_you_file/your_file/file.sh
【讨论】:
root 用户,否则当它的所有者用户被移除时任务也会被删除。
rc.local 默认是禁用的。 使用此命令启用
sudo systemctl enable rc-local.service
【讨论】: