Как стать автором
Обновить

Комментарии 12

Хорошая статья для новичков, спасибо.
Мне кажется, в вашем кейсе можно было бы написать просто баш скрипт.
Да, но хотелось все-таки познакомиться с новой игрушкой — systemd, чтобы в случае чего уже иметь полезный опыт. Ну и в конечном итоге я нашел очень мало информации по .targest… или у меня мозг как-то плохо воспринимал доки на эту тему, поэтому я на практике немного разобрался с ними и в итоге написал эту статью с надеждой сэкономить кому-нибудь то время, которое я потратил на переваривание доков по targets.
Правильней и проще было бы использовать docker.
Я с докером еще не работал, только слышал о нем. Ну и init process, мне кажется, именно для таких вещей как диспетчинг сервисов и был создан. Закончу со своим домашним линуксом и пойду докер осваивать :)
Чего?! Это неправильней и не проще.
Мне было лень писать 2 команды (запуск apache и запуск mysql), т.к. я знал, что обе программы всегда будут выключаться и включаться синхронно. Хотелось выполнять эту операцию одной командой.

systemctl start apache2.service mysqld.service
Ну это так, к слову. А ещё можно было настроить активацию на сокетах и вообще не пришлось бы тыкать systemctl лишний раз — нужные сервисы сами бы включились по требованию.
На сокетах было бы очень интересно реализовать. Правда в моем конкретном случае не думаю, что меня оно устроило бы, т.к. у меня в браузере с прошлой сессии могла остаться вкладка на localhost и она бы «дернула» запуск рабочих сервисов вопреки моему желанию.
Не обязательно делать target, вполне можно было сделать сервис с опцией PartOf и Wants.

Оказалось, что можно делать локальные для пользователя сервисы, которые не требуют рут прав с помощью помещения этих самых сервисов в ~/.config/systemd/user/my_daemon.service и потом стартовать их с помощью


systemctl --user start my_daemon
не подскажите где документацию почитать по этим сервисам? желательно официальную.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории