启动bash脚本无法在Linux启动时启动

时间:2018-09-21 07:07:21

标签: linux bash startup

我把这个脚本编成文件更改的看门狗-一旦文件一段时间没有更改,这意味着受控进程已损坏,必须重新启动计算机(NI CompactRIO)。

文件位于/etc/init.d中,我使用了以下命令:

chmod +x /etc/init.d/reboot_after_fail.sh
chmod 777 /etc/init.d/reboot_after_fail.sh
/usr/sbin/update-rc.d -f reboot_after_fail.sh defaults 99 0

看起来都不错,但是启动时什么也没发生(ps -ef|grep reboot)。 NTP系统时间更新的脚本以相同的方式安装,并且可以正常工作。直接运行或与nohup /etc/init.d/reboot_after_fail.sh &一起运行的同一脚本效果很好。有任何想法吗?脚本代码如下:

#!/bin/sh

#change values
timestamp_file="/c/settings/timestamp.dat"
init_sleep_time=120
sleep_time=300 #in seconds

#do not change values
timestamp_value_first=0
timestamp_value_second=0


sleep $init_sleep_time

timestamp_value_first=$(<"$timestamp_file")

while true
do
  sleep $sleep_time

  timestamp_value_second=$(<"$timestamp_file")

  if [[ $timestamp_value_second -eq "0"  ||  $timestamp_value_second -eq "" ]]
  then
    :
  elif [ $timestamp_value_first -eq $timestamp_value_second ]
  then
    #exec reboot;reboot
    echo "reboot"
  else
    timestamp_value_first=$timestamp_value_second
  fi
done

0 个答案:

没有答案