使用 systemd 启动后触发 CURL 请求
Trigger CURL Request after boot using systemd
我正在尝试创建一个每次 raspberry pi 启动时都会触发的服务。目前,服务 运行 是一个非常简单的脚本,它向我控制的 Web 服务端点发送 POST 请求。我可以手动触发所述脚本,并且该部分一切正常。
我正在努力进行下一步,即在 pi 完成启动后将该脚本发送到 运行。我还需要能够在没有用户登录的情况下将其设置为 运行。
CURL 脚本(阿尔及尔-startup.local)
#! /bin/bash
echo "Attempting CURL Request"
curl --data "param1=value1¶m2=value2" http://10.68.159.28:3000/device
Systemd 服务
[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
我在控制台中没有看到任何错误或输出,也没有任何迹象表明发生了任何事情。
我假设您的机器已经设置 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
可以告诉你发生了什么。
我正在尝试创建一个每次 raspberry pi 启动时都会触发的服务。目前,服务 运行 是一个非常简单的脚本,它向我控制的 Web 服务端点发送 POST 请求。我可以手动触发所述脚本,并且该部分一切正常。
我正在努力进行下一步,即在 pi 完成启动后将该脚本发送到 运行。我还需要能够在没有用户登录的情况下将其设置为 运行。
CURL 脚本(阿尔及尔-startup.local)
#! /bin/bash
echo "Attempting CURL Request"
curl --data "param1=value1¶m2=value2" http://10.68.159.28:3000/device
Systemd 服务
[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
我在控制台中没有看到任何错误或输出,也没有任何迹象表明发生了任何事情。
我假设您的机器已经设置 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
可以告诉你发生了什么。