...
А вообще есть ли преимущества запускать демоном? он сам восстанавливается при падении?
...
Преимущество при работе через SSH. Не нужно заморачиваться с nohup.
Сам не восстановится после падения. Для меня неактуально - даже не помню уже когда "падал" последний раз.
Свои 5 копеек добавлю. Раньше делал довольно-серьезный скрипт, частично заимствованный у
EMoney, сейчас его существенно урезал в части проверок, но оптимизировал в качестве информирования меня о падениях )
#!/bin/bash
if [[ "`pidof -x $(basename $0) -o %PPID`" ]]; then exit 0; fi
crypt=nxt
home=$HOME/mon
crypthome=$HOME/nxt
host=localhost:7876
run="java -cp classes:lib/*:conf nxt.Nxt"
db_folder=$crypt"_db/"
log_file="$home/$crypt.log"
logs="$home/logs/"
chain_cached_arc="$home/backup/chain-cached-$crypt.tar"
chain_origin_arc="$home/backup/chain-original-$crypt.tar"
cd $crypthome
if [ ! -f $chain_origin_arc ]; then
tar -cf $chain_origin_arc $db_folder 2> /dev/null
fi
ALIVE=`ps aux | grep "nxt.Nxt" | grep -v grep | wc -l`
if [ $ALIVE -eq 1 ]; then
blockchain_status=$(wget -qO- http://$host/$crypt?requestType=getBlockchainStatus)
typeset -i curr_block_id=$(echo $blockchain_status | grep -oP '"numberOfBlocks":\d+' | awk -F ":" '{print $2}')
curr_block_num=$(echo $blockchain_status | grep -oP '"lastBlock":"\d+"' | awk -F ":" '{print $2}' | sed 's/"//g' )
echo "$(date) OK: block $curr_block_id ( $curr_block_num ) " >> $log_file
tmp=$[$curr_block_id%100]
if [ $tmp -eq 0 ]; then
echo "$(date) OK: backup chain" >> $log_file
tar -cf $chain_cached_arc $db_folder 2> /dev/null
fi
else
echo "$(date) ERROR: proces not found! Copy logs" >> $log_file
FN=`date +"%Y-%m-%d-%H-%M"`
cp logs/nxt.log $logs/$FN.log
nohup $run &
cd $home
php -f warning.php
fi
полностью можно глянуть на гитхабе:
https://github.com/scor2k/CryptoMon-lite В логах выглядит примерно так:
Tue Jan 12 06:30:01 GMT 2016 OK: block 612793 ( 1666405140390766448 )
Tue Jan 12 06:35:02 GMT 2016 OK: block 612797 ( 3361072523553913547 )
Tue Jan 12 06:40:01 GMT 2016 ERROR: proces not found! Copy logs
Tue Jan 12 06:45:01 GMT 2016 OK: block 612803 ( 205045269287592854 )
Tue Jan 12 06:50:01 GMT 2016 OK: block 612804 ( 3434522029670778406 )