Я хочу запустить простую команду после того, как мой Ubuntu запустится и сетевые службы будут установлены (это должно быть сделано независимо от того, вошел я в систему или нет)
Если я запускаю команду вручную, она запускает вложенные приложения: запуск объединенных локальных служб
. Так что это работает, по крайней мере, с моим пользователем.
Вопросы:
- Как я могу запустить команду при запуске системы (после подключения сети)?
- Для любых предложенных решений, как я могу контролировать, действительно ли решение выполняется?
Что я пробовал до сих пор:
кронтаб: sudo crontab e
и добавил @reboot запускает объединенные локальные службы
. Эта строка стирается каждый раз, когда я перезагружаю систему.
системная служба: я добавил эту команду в скрипт sh в /usr/local/bin/confluent-startup.sh. Затем я создал служебный файл в /etc/systemd/system/confluent-local.service
Этот файл будет содержать следующее содержимое:
[Ед. изм]
Описание=начало локального слияния
После=network.service
[Оказание услуг]
ExecStart=/usr/local/bin/confluent-local-start.sh
Тип = ваншот
RemainAfterExit=да
[Установить]
WantedBy=многопользовательская.цель
Я перезагрузил службы
sudo systemctl демон-перезагрузка
sudo systemctl включить confluent-local.service
После перезагрузки я вижу, что служба включена, вызывая: systemctl list-unit-files --type service -all
. Но бег статус объединенных местных служб
покажет мне, что все службы все еще не работают.Почему это работает вручную, но не с помощью systemd? (К вашему сведению: я поменял права на сервисе и на скрипте на полный доступ: 777 (да, я знаю... Это просто для проверки))
Любая подсказка?