Я создал этот сценарий, работающий как сторожевой таймер для изменений файла - если файл какое-то время не изменяется, это означает, что контролируемый процесс нарушается и компьютер (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