【问题标题】:Update-rc.d custom script running too late, and also runs at shutdownupdate-rc.d 自定义脚本运行太晚,而且还在关机时运行
【发布时间】:2014-06-26 15:07:34
【问题描述】:

我有一个脚本,当我的无头 Raspberry Pi(运行 Debian Wheezy)启动时,它会向我发送推送通知。我还将它设置为在启动时连接到 OpenVPN。

问题 1:问题是它在 OpenVPN 连接建立之前发送此通知。所以我收到的是 WAN IP,而不是我们的安全 VPN IP。

问题 2:当系统关闭时它会运行 pushover 通知。因此,当它关闭时,我会收到相同的 PO 通知:嘿,我在线!我的IP是:X.X.X.X

我认为问题与 update-rc.d 有关

我在 /etc/init.d/ 中创建了我的 pushover 脚本

我做了chmod +x

我跑了:

update-rc.d myscript defaults 02 98

重启后还是先发PO,再连接VPN。

所以我也尝试了相反的方法:

update-rc.d myscript defaults 98 02

重启后还是先发PO,再连接VPN。

所以我尝试将 sleep 15 添加到我的脚本中,但仍然是同样的问题。

如何让 OpenVPN 先连接,然后再发送通知? 如何让这个脚本在系统关闭时不运行?

这是我的脚本:

#!/bin/bash
sleep 30

WANIP=$(curl ident.me; echo)
echo "$WANIP"
curl -s \
-F "token=MYTOKENGOESHERE" \
-F "user=MYTOKENGOESHERETOO" \
-F "message=is online and connected. ${WANIP} is my IP." \
https://api.pushover.net/1/messages.json

【问题讨论】:

    标签: debian raspberry-pi


    【解决方案1】:

    update-rc 应用程序只是在 rc.X 文件夹中创建一个符号链接,其中 X 将根据脚本运行时间的需要而有所不同。当您使用默认选项时,将在所有文件夹中创建链接,从而使脚本在操作系统定义状态的每个状态下运行。

    一种解决方案是仅在与您要触发的事件相对应的文件夹内手动创建链接。可以在此处找到应创建链接的相应文件夹:

    http://www.linux.com/news/enterprise/systems-management/8116-an-introduction-to-services-runlevels-and-rcd-scripts

    另一个快速解决方案是使用默认配置,然后从 rc.0 文件夹中删除符号链接,根据上面的文章,该文件夹包含指向要在停止操作系统时执行的脚本的链接。

    【讨论】:

    • 好的,我会再讨论一下。谢谢你的链接。目前这有点过头了,但我会学习的。谢谢
    猜你喜欢
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    相关资源
    最近更新 更多