LINUX.ORG.RU
решено ФорумAdmin

Выполнение запроса curl'ом при завершении работы системы

 


0

1

Нужно выполнить POST запрос при выключении компьютера (до завершения работы сетевых служб, естественно).

Накидал такой юнит:

[Unit]
Description=Actions before shutdown (and before network shutdown)
DefaultDependencies=no
Before=shutdown.target halt.target
After=network-online.target

[Service]
Type=simple
ExecStart=/bin/true
ExecStop=/usr/bin/curl -s -X POST -F p=1 -F p2=a 'http://ip/path/file.php'
RemainAfterExit=yes
TimeoutStopSec=30
KillMode=process

[Install]
WantedBy=shutdown.target

Предполагается, что юнит активируется при завершении работы системы (shutdown.target), а запрос выполнится при остановке этого сервиса (ExecStop).

И что-то не получается добиться того, что нужно. Запрос не выполняется. Полагаю, он прибивается в процессе продолжающегося завершения работы системы. В журнал ничего полезного не пишется, только то, что сервис стартовал.

Пробовал в ExecStart прописывать curl - тоже не выполняется запрос.

Может, кто-то делал что-то подобное, подскажите, как сделать сабж.


Может потому что в RemainAfterExit надо true указать? Никогда не видел, чтоб использовалось yes. И WantedBy=multi-user.target наверное, зачем shutdown? Получается что, у нас висит какой-то процесс, но как юнит при выключении стопается, дёргается ExecStop.

Короче,

[Unit]
Description=Ололололо

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/sleep infinity
ExecStop=Твоё чё там надо

[Install]
WantedBy=multi-user.target
Pierre_Dolle
()
Последнее исправление: Pierre_Dolle (всего исправлений: 1)

Вот такой юнит работает, как хотелось:

[Unit]
Description=Actions before shutdown (and before network shutdown)
Before=shutdown.target halt.target
DefaultDependencies=no

[Service]
Type=oneshot
ExecStart=/usr/bin/curl -s -X POST -F p=1 -F p2=a 'http://ip/path/file.php'

[Install]
WantedBy=halt.target shutdown.target

Всем спасибо!

le_
() автор топика