为什么我的/etc/init.d中的脚本在rc0.d和rc6.d中具有K符号链接,而在rc5.d中具有S符号链接在关机时不起作用?

时间:2019-05-25 00:03:26

标签: bash shell runlevel

我正在编写一个脚本,该脚本要在每次关闭ubuntu系统之前运行。我将名为myscript的脚本放置在/etc/init.d文件夹中,然后在rc0.d和rc6.d中创建了符号链接,在rc5.d中创建为K01myscript和S01myscript。但是问题在于该脚本根本没有运行。

我的脚本@paxdiablo-

#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LOGPATH=/home/user/Documents
lockfile=/var/lock/subsys/decomission
now=$(date +'%T')

start() {
    touch $lockfile
    echo "[$now] System startup" >> $LOGPATH/test.log
}

stop() {
    echo "[$now] System shutdown" >> $LOGPATH/test.log
    rm -f $lockfile
}

status() {
    echo "[$now] Hi, you're checking status" >> $LOGPATH/test.log
}

case "$1" in
  start)
      start
      ;;
  stop)
      stop
      ;;
  restart)
      $0 stop
      $0 start
      ;;
  status)
      status
      ;;
  *)
      ## If no parameters are given, print which are avaiable.
      echo "Usage: $0 {start|stop|status}"
      exit 1
      ;;
esac

2 个答案:

答案 0 :(得分:1)

这个问题很旧,但是我今天正在研究这些行,所以只想检查一下,是否添加了要在init下运行的脚本/服务。我猜您需要检查chkconfig --list的输出。如果未列出,则没有配置为由init系统执行。例如:

[testfolk@jomohost ~]$  sudo chkconfig --list|grep myscript
myscript             0:off   1:off   2:on    3:on    4:off    5:on    6:off

答案 1 :(得分:0)

在脚本的开头,您必须设置PATH,例如:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin