我想在我的 ubuntu 启动并建立网络服务后运行一个简单的命令(无论我是否登录它都应该这样做)
如果我手动运行该命令,它会启动所附的应用程序:confluent local services start
。因此它至少对我的用户有效。
问题:
- 如何在系统启动时(网络建立后)运行该命令?
- 对于任何建议的解决方案,我如何监控该解决方案是否真正执行?
到目前为止我已经尝试过:
定时任务:
sudo crontab e
并添加了@reboot confluent local services start
。每次我重新启动系统时,此行都会被删除。系统服务:我已将命令添加到 /usr/local/bin/confluent-startup.sh 下的 sh 脚本中。然后我在文件中创建了服务文件,
/etc/systemd/system/confluent-local.service
该文件将包含以下内容:[Unit] Description=starting local confluent After=network.service [Service] ExecStart=/usr/local/bin/confluent-local-start.sh Type=oneshot RemainAfterExit=yes [Install] WantedBy=multi-user.target
我已经重新加载了服务
sudo systemctl daemon-reload
sudo systemctl enable confluent-local.service
重启后,我看到服务已启用并调用:systemctl list-unit-files --type service -all
。但运行时confluent local services status
会显示所有服务仍处于关闭状态。为什么手动可以工作,但 systemd 却不行?(仅供参考:我已将服务和脚本的权限更改为完全访问权限:777(是的,我知道……这只是为了测试))
有什么线索吗?