/etc/rc.local 是否仍然是在 Ubuntu 18.04 LTS 上启动时运行脚本的首选方式

Mik*_*ott 5 server bash scripts 18.04

我曾经在启动时运行几个脚本来设置我希望服务器运行的方式。迁移到 Ubuntu 18.04 后,我遇到了一些脚本问题,我只是想知道这是否仍然是重新启动后自动运行 shell 脚本的首选方法?

Jon*_*nas 2

在 Ubuntu 16.04 之后,传统的 init 启动脚本已被 systemd 服务及其配置所取代。大多数脚本或脚本指令被重写为所谓的 systemd 单元文件。因此,我建议为您的自定义启动脚本设置一个 systemd 服务。

/etc/systemd/system/foo.service用内容创建:

[单位]
描述=Setup foo
After=network.target

[服务]
Type=oneshot
ExecStart=/opt/foo/setup-foo.sh
RemainAfterExit=true
ExecStop=/opt/foo/teardown-foo.sh
StandardOutput=journal

[安装]
WantedBy=多用户.target

相应地替换为您的参数。该服务定义将在每次启动时运行/opt/foo/setup-foo.sh

请记住加载并启用该服务:

sudo systemctl 守护进程重新加载
sudo systemctl 启用 foo.service

有关更多信息,请查看此示例