Триггер CURL-запрос после загрузки с использованием systemd

Я пытаюсь создать сервис, который будет запускаться каждый раз при загрузке Raspberry Pi. В настоящее время служба выполняет действительно простой сценарий, который отправляет запрос POST конечной точке веб-службы, которой я управляю. Я могу запустить указанный скрипт вручную, и эта часть все работает отлично.

Я борюсь со следующим шагом, который должен запустить этот скрипт после того, как пи завершил загрузку. Я также должен иметь возможность запустить его без входа пользователя.

CURL Script (algiers-startup.local)

#! /bin/bash

echo "Attempting CURL Request"
curl --data "param1=value1&param2=value2" http://10.68.159.28:3000/device

Системный Сервис

[Unit]
Description=Algiers RaspberryPi Startup
After=network.target
Before=getty@tty1.service

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/algiers-startup.local
TimeoutSec=30
StandardOutput=tty
RemainAfterExit=no

[Install]
WantedBy=multi-user.target

Я не вижу ошибок или выводов в консоли, ни намека на то, что что-то вообще произошло.

1 ответ

Решение

Я предполагаю, что ваша машина уже настроена с Systemd. Это контролируется в первую очередь через systemctl команда. Я называю это так, потому что это ужасно печатать постоянно:

alias sc=systemctl
alias ssc='sudo systemctl'

Вам просто нужно "включить" ваш сервис, чтобы он работал при загрузке:

sc enable algiers-startup

Я не уверен, какой дистрибутив вы используете, но в Arch и CentOS вам понадобится algiers-startup жить в /usr/lib/systemd/system/,

Вы можете проверить свои услуги с sc start algiers-start, journalctl могу показать вам, что происходит

Другие вопросы по тегам