自己在看官方教程的时候因为是个小白所以有些东西不理解,就各种查想办法,现在把 Ubuntu 系统配置开机启动的方式分享给大家,大佬勿喷,给同样跟我一样非技术类的爱好者看。 在 Ubuntu 系统中配置开机启动的脚本与 CentOS 有所不同,主要因为 Ubuntu 使用 systemd 作为其初始化系统,而 CentOS 7 及以上版本也使用 systemd,但传统上 CentOS 可能使用 init。以下是如何在 Ubuntu 上配置开机启动脚本的步骤: 步骤 1: 创建一个自定义的 systemd 服务 创建服务文件 : 打开一个文本编辑器,创建一个新的 systemd 服务文件。例如,您可以创建一个名为 mingdao.service 的文件。您可以使用 nano 或任何您喜欢的文本编辑器: sudo nano /etc/systemd/system/mingdao.service 编写服务配置 : 在编辑器中,添加以下内容来定义您的服务: 注意 :👀️ /bin/bash ***/opt/mingdao/service.sh startall 这个路径改成自己的 [Unit] Description = Start Mingdao services at boot time After = network.target [Service] Type = oneshot ExecStart = /bin/sleep 30 ExecStart = /usr/bin/docker system prune -f ExecStart = /bin/bash /opt/mingdao/service.sh startall RemainAfterExit = yes [Install] WantedBy = multi-user.target 这里的配置定义了一个服务,它在网络服务可用后启动,执行三个命令:先等待 30 秒,清理 Docker 系统,然后运行一个脚本启动所有服务。 保存并关闭文件 。 步骤 2: 启用和启动服务 重新加载 systemd 管理器配置 ,以确保 systemd 识别新的服务文件: sudo systemctl daemon-reload 启用服务 ,使其在系统启动时自动启动: sudo systemctl enable mingdao.service 如果您希望立即测试服务,可以手动启动它: sudo systemctl start mingdao.service 步骤 3: 检查服务状态 您可以检查服务的状态,确保一切按预期工作: sudo systemctl status mingdao.service 这将显示服务的当前状态,包括是否正在运行,以及最近的日志条目。 使用这种方法,您可以将任何启动脚本添加为 systemd 服务,在 Ubuntu 系统上实现开机自启动。这比在 /etc/rc.local 中直接写命令更加现代和灵活,也更容易管理和调试。
好的,谢谢。
某个版本改过 service.sh 脚本,这个进程要在相对路径下启动。
可以讲解下,需要进入到 service.sh 所在目录执行的具体原因么,之前确实没有了解过这个细节,是会涉及一些环境变量么?
真棒
补充一个 😄 重启服务器后查看开机自启动是否生效
sudo journalctl -u mingdao.service测试啦正常的
已经测试了可以正常启动
你可以在测试环境实际验证一下
这样对了吧
谢谢指正,我回头改改
嗯我有一个也是 uos,挺好的,我是看着 Ubuntu 顺眼
Ubuntu 感觉没有 Debian 好用,我们现在所有客户都是用的 Debian 或者 UOS,还是挺稳定的
/bin/bash /opt/mingdao/service.sh startall这条命令不能绝对路径执行,需要在相对路径下执行 startall。如:
感谢,正在使用 Ubuntu 系统的版本,这个教程正好!!!