1

我正在编写一个脚本,我想在每次关闭我的 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
4

2 回答 2

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
于 2019-10-17T21:48:28.777 回答
0

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

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
于 2019-05-25T06:26:57.297 回答