LINUX.ORG.RU
ФорумAdmin

Автозапуск. Не получается через unit systemd

 , ,


0

1

Нужно запустить как сервис такую штуку как Fluvio. Запускается он коммандой fluvio cluster start или если уже был создан кластер то тогда fluvio cluster resume

 fluvio cluster start
📝 Running pre-flight checks
    ✅ Local Fluvio is not installed
    ✅ Previous local fluvio installation not found
🎉 All checks passed!
✅ Local Cluster initialized
👤 Profile set
✅ SC Launched
🤖 Starting SPU: (1/1) /                                                                                                                                                                ✅ 1 SPU launched
🎯 Successfully installed Local Fluvio cluster

после чего создается несколько процессов. После перезагрузки системы процессов естественно нет.

   1216 pts/0    Sl     0:00 /home/pg/.fluvio/bin/fluvio run sc --local /home/pg/.fluvio/data/metadata --bind-public 127.0.0.1:9003
   1233 pts/0    Sl     0:00 /home/pg/.fluvio/bin/fluvio-run sc --local /home/pg/.fluvio/data/metadata --bind-public 127.0.0.1:9003
   1252 pts/0    Sl     0:00 /home/pg/.fluvio/bin/fluvio run spu -i 5001 -p 0.0.0.0:9010 -v 0.0.0.0:9011 --log-base-dir /home/pg/.fluvio/data
   1269 pts/0    Sl     0:00 /home/pg/.fluvio/bin/fluvio-run spu -i 5001 -p 0.0.0.0:9010 -v 0.0.0.0:9011 --log-base-dir /home/pg/.fluvio/data

Если запустить через systemd то процесс не запускается.Утилита fluvio написана что сама запускает процессы и потом можно проверять статус процессов этой же утилитой. Но как сделать автостарт процессов?

 sudo systemctl status  fluvio.service
● fluvio.service - Fluvio Streaming Platform
     Loaded: loaded (/etc/systemd/system/fluvio.service; disabled; preset: enabled)
     Active: activating (auto-restart) (Result: exit-code) since Tue 2025-03-04 17:39:26 MSK; 2s ago
    Process: 1132 ExecStart=/home/pg/.fluvio/bin/fluvio cluster start (code=exited, status=217/USER)
   Main PID: 1132 (code=exited, status=217/USER)


Последнее исправление: pistoletov (всего исправлений: 5)
Ответ на: комментарий от ALiEN175
[Unit]
Description=Fluvio Streaming Platform
After=network.target

[Service]
Type=simple
User=pg
ExecStart=/home/pg/.fluvio/bin/fluvio cluster start
Restart=always
RestartSec=5
WorkingDirectory=/home/pg
Environment="PATH=/home/pg/.fluvio/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

[Install]
WantedBy=multi-user.target
pistoletov
() автор топика
Ответ на: комментарий от ALiEN175

На тему бога. Вы видимо действительно совсем новорег, вот например старая тема Почему Патрик Бог? Возможно не все комменты вам будут понятны, поэтому можете попробовать поискать и посвежее, могу предположить что подобных тем больше одной.

anc ★★★★★
()
Ответ на: комментарий от eternal_sorrow
Mar 04 15:54:33 dbpg systemd[1]: fluvio.service: Scheduled restart job, restart counter is at 4.
Mar 04 15:54:33 dbpg systemd[1]: Started fluvio.service - Fluvio Streaming Platform.
Mar 04 15:54:33 dbpg (fluvio)[37549]: fluvio.service: Failed to determine user credentials: No such process
Mar 04 15:54:33 dbpg systemd[1]: fluvio.service: Main process exited, code=exited, status=217/USER

ручками запускаю его под пользователем pg без проблем

pistoletov
() автор топика
Ответ на: комментарий от ALiEN175
 sudo chmod o+r /home/pg

pg@dbpg:~$ systemctl start fluvio.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to start 'fluvio.service'.
Authenticating as: AP (pg)
Password:
==== AUTHENTICATION COMPLETE ====


стал просить пароль при запуске. Заменил в юните fluvio cluster start на fluvio cluster resume. Запустился норм!-)

Mar 05 12:16:04 dbpg systemd[1]: fluvio.service: Scheduled restart job, restart counter is at 12761.
Mar 05 12:16:04 dbpg systemd[1]: Started fluvio.service - Fluvio Streaming Platform.
Mar 05 12:16:05 dbpg fluvio[107822]: 🎉 All checks passed!
Mar 05 12:16:08 dbpg fluvio[107822]: 🎯 Successfully installed Local Fluvio cluster
Mar 05 12:16:08 dbpg systemd[1]: fluvio.service: Deactivated successfully.
Mar 05 12:16:13 dbpg systemd[1]: fluvio.service: Scheduled restart job, restart counter is at 12762.
Mar 05 12:16:13 dbpg systemd[1]: Started fluvio.service - Fluvio Streaming Platform.
Mar 05 12:16:14 dbpg fluvio[107919]: 🎉 All checks passed!
Mar 05 12:16:17 dbpg fluvio[107919]: 🎯 Successfully installed Local Fluvio cluster
Mar 05 12:16:17 dbpg systemd[1]: fluvio.service: Deactivated successfully.

deactivated sucessfuly че это значит? Запустил процессы и вышел? Сами процессы активны

pistoletov
() автор топика
Ответ на: комментарий от ALiEN175

подскажите если мне нужен запуск нескольких похожих сервисов. на каждый делаю unit файл или можно как-то одним обойтись?

/home/emq/.fluvio/bin/cdk deploy start --ipkg infinyon-sql-sink-0.4.4.ipkg --config sql-first-vmt.yaml  --log-level info
/home/emq/.fluvio/bin/cdk deploy start --ipkg infinyon-mqtt-source-0.2.9.ipkg -c emqx_first_vmt.yaml >> 123.txt
/home/emq/.fluvio/bin/cdk deploy start --ipkg infinyon-mqtt-source-0.2.9.ipkg  --config emqx-tele.yaml --log-level info
/home/emq/.fluvio/bin/cdk deploy start --ipkg infinyon-mqtt-source-0.2.9.ipkg  --config emqx-sars.yaml --log-level info
/home/emq/.fluvio/bin/cdk deploy start --ipkg infinyon-mqtt-source-0.2.9.ipkg  --config emqx-collection.yaml  --log-level info
/home/emq/.fluvio/bin/cdk deploy start --ipkg infinyon-sql-sink-0.4.4.ipkg --config sql-collection.yaml --log-level info
/home/emq/.fluvio/bin/cdk deploy start --ipkg infinyon-sql-sink-0.4.4.ipkg --config sql-telemet.yaml --log-level info
/home/emq/.fluvio/bin/cdk deploy start --ipkg infinyon-sql-sink-0.4.4.ipkg --config sql-saday.yaml --log-level debug
pistoletov
() автор топика
Ответ на: комментарий от pistoletov

делается через @ в конце имени сервиса. т.е. создаешь foo@.service.
а енаблишь как foo@bar.service bar есть параметр который можно использовать внутри сервиса.
https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html#Description
от Unit names can be parameterized by a single argument called the «instance name». и далее

pfg ★★★★★
()
Ответ на: комментарий от pfg

а как быть с корректной остановкой сервиса? Запуск делаю так:

sudo systemctl start  outsql@sql_salesstat

Команды на запуск и останов из юнит файла такие:

ExecStart=/home/pg/.fluvio/bin/cdk deploy start --ipkg infinyon-sql-sink-0.4.4.ipkg  --config  %i.yaml
ExecStop=/home/pg/.fluvio/bin/cdk deploy shutdown -n %i

ExecStop выполнится только при запуске systemctl stop? мне бы хотелось его запускать и в случае сбоя работы сервиса то получается при сбое сервиса начинается поптыка перезапуска и забивает весь диск при по попытке запустить новый сервис не прибив корректно старый. Если запуск по событию failure То помнит ли юнит это передаваемое имя %i или оно только из коммандной строки при запуске или останове передается?

pistoletov
() автор топика
Последнее исправление: pistoletov (всего исправлений: 1)