首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >systemctl自定义服务不会在启动时启动,但可以手动启动。

systemctl自定义服务不会在启动时启动,但可以手动启动。
EN

Unix & Linux用户
提问于 2019-07-05 14:27:56
回答 1查看 354关注 0票数 2

我在RPI上做了个Debian测试。我需要在启动时启动一个自定义服务。

代码语言:javascript
复制
/lib/systemd/system/lora-packet-forwarder.service

服务已启用,但显示为非活动服务。

代码语言:javascript
复制
lora-packet-forwarder.service - LoRa Packet Forwarder
   Loaded: loaded (/lib/systemd/system/lora-packet-forwarder.service; enabled; vendor preset: enabled)
   Active: inactive (dead)

检查:

代码语言:javascript
复制
sudo journalctl -f -u lora-packet-forwarder.service 

--什么也没出现

如果我从控制台手动启动它,它可以正常工作:

代码语言:javascript
复制
sudo systemctl start lora-packet-forwarder.service

lora-packet-forwarder.service - LoRa Packet Forwarder
   Loaded: loaded (/lib/systemd/system/lora-packet-forwarder.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-07-05 15:01:48 BST; 3s ago
  Process: 554 ExecStartPre=/home/pi/lora_gateway/reset_lgw.sh start (code=exited, status=0/SUCCESS)
 Main PID: 570 (lora_pkt_fwd)
   Memory: 568.0K
   CGroup: /system.slice/lora-packet-forwarder.service
           └─570 /home/pi/packet_forwarder/lora_pkt_fwd/lora_pkt_fwd

Jul 05 15:01:47 raspberrypi systemd[1]: Starting LoRa Packet Forwarder...
Jul 05 15:01:47 raspberrypi reset_lgw.sh[554]: Accessing concentrator reset pin through GPIO25...
Jul 05 15:01:48 raspberrypi systemd[1]: Started LoRa Packet Forwarder.

以下是服务文件的内容:

代码语言:javascript
复制
[Unit]
Description=LoRa Packet Forwarder

[Service]
WorkingDirectory=/home/pi/packet_forwarder/lora_pkt_fwd
ExecStartPre=/home/pi/packet_forwarder/lora_pkt_fwd/reset_lgw.sh start
ExecStart=/home/pi/packet_forwarder/lora_pkt_fwd/lora_pkt_fwd


[Install]
WantedBy=multi-user.target

在启动lora_pkt_fwd之前,我有一个小的shell脚本来重置GPIO引脚。以下是这两个文件的权限:

代码语言:javascript
复制
-rwxr-xr-x 1 pi pi  1485 Jul  3 21:38 reset_lgw.sh
-rwxr-xr-x 1 pi pi 144680 Jul  3 20:17 lora_pkt_fwd

关于设置,已尝试:

  1. 将shell脚本- ExecStartPre=bash /home/pi/packet_forwarder/lora_pkt_fwd/reset_lgw.sh start放入"bash“
  2. After=network.target的尝试组合,在单元部分中,在
  3. 试过Type=simple和服务区段的分叉
  4. 尝试禁用/启用服务和守护进程-重新加载(以防万一)

我可以用cron任务什么的完成这件事,但我想把它做好。

EN

回答 1

Unix & Linux用户

发布于 2021-05-05 02:27:59

任何人在这里寻找正确的文件,这是我的工作。

代码语言:javascript
复制
[Unit]  
Description=Packet forwarder for LORA-Helium  
After=network.target  
StartLimitIntervalSec=0  

[Service]  
Type=simple  
Restart=always  
RestartSec=1  
StartLimitAction=reboot  
User=pi  
WorkingDirectory=/home/pi/sx1302_hal/packet_forwarder/  
ExecStartPre=bash /home/pi/sx1302_hal/packet_forwarder/reset_lgw.sh start  
ExecStart=/home/pi/sx1302_hal/packet_forwarder/lora_pkt_fwd -c  /home/pi/sx1302_hal/packet_forwarder/global_conf.json  

[Install]  
WantedBy=multi-user.target  
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/528550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档