rc.local 中的脚本(开机时启动),不启动

rc.local 中的脚本(开机时启动),不启动

在我的 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/

相关内容