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

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

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

答案1

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

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

[单元]
描述=设置 foo
之后=network.target

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

[安装]
WantedBy=multi-user.target

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

记得加载并启用服务:

sudo systemctl daemon-reload
sudo systemctl enable foo.service

更多信息请查看这个例子

相关内容