启动时无法执行命令

启动时无法执行命令

我想在我的 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(是的,我知道……这只是为了测试))

有什么线索吗?

相关内容