在我的 Debian 中/etc/rc.local
,我放置了 2 个脚本(一个用于 Wifi AP,另一个用于 VPN 客户端连接):
sh /bootscripts/vpn.sh &
sh /bootscripts/wifiap.sh &
#test:
date >> /home/user24/Desktop/logdate
exit 0
这两个脚本都是可执行的 ( rwxr-xr-x
),它们的 shebang 行是#!bin/bash
。
但他们不跑。我哪里错了?
答案1
由于/etc/rc.local
在每个多用户运行级别结束时执行,因此它不是添加启动脚本的正确位置。我建议不要/etc/rc.local
以任何方式使用。这是早期 *nix 次的重复。相反,创建一个启动脚本,/etc/init.d/name
其中接受start
参数stop
来启动或停止守护程序、进程或作业:
#! /bin/sh
# /etc/init.d/name
#
case "$1" in
start)
echo "Starting name"
your_service --with --parameters
;;
stop)
echo "Stopping name"
kill your_service
;;
*)
echo "Usage: /etc/init.d/name {start|stop}"
exit 1
;;
esac
exit 0
还有一个框架脚本/etc/init.d/skeleton
用于此目的。
创建脚本后,设置权限:
chmod 755 /etc/init.d/name
现在,将它们添加到启动序列中:
update-rc.d name defaults
这将在目录中创建必要的链接/etc/rc*.d/
。