我想要一个可执行程序在启动时运行。为此,我创建了一个 shell 脚本:/etc/init.d/server
。然后我跑了chmod +x name_of_script
,然后update-rc.d server defaults
。
服务器(脚本):
#!/bin/sh
cd /home/root/
./Server_msg
Server_msg 打印来自客户端的消息。在静态 IP 地址 192.168.1.200 上接收消息。
笔记:连接是无线的:静态 IP 地址 192.168.1.200 通过也在启动时运行的脚本分配给设备,该脚本加载 Wi-Fi 驱动程序的适配器。
问题:
当我添加脚本时服务器要在启动时运行,系统无法运行这两个脚本。
有任何想法吗?
答案1
默认情况下,如果您使用:
update-rc.d server defaults
然后update-rc.d
将创建在运行级别 2345 中启动server
服务并在运行级别 016 中停止的链接,所有这些链接都有序列号20
。
如果server
脚本依赖于其他服务,例如networking
.因此,当server
脚本启动而其依赖的服务尚未启动时,它将失败。
为了确保server
脚本仅在其所有依赖服务启动时运行,您可以为server
脚本提供更高的优先级:
update-rc.d server defaults 90
或将其添加到/etc/rc.local
.