我过去常常在启动时运行几个脚本来设置我希望服务器运行的方式。迁移到 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
更多信息请查看这个例子。