is_running() {
PID_RUNNING=$(pgrep -nf "$NFQWS_BIN" 2>/dev/null)
if [ -z "$PID_RUNNING" ]; then
return 1
fi
if [ ! -f "$PIDFILE" ]; then
return 1
fi
PID_SAVED=$(cat "$PIDFILE" 2>/dev/null)
if [ "$PID_RUNNING" -ne "$PID_SAVED" ]; then
return 1
fi
if ! kill -0 $PID_SAVED; then
return 1
fi
# 0 = true, 1 = false
return 0
}arp ash awk brctl bunzip2 bzcat cat chgrp chmod chown clear cp cut date dd depmod df dhcprelay diff dmesg du echo egrep eject env false fgrep find flash_eraseall flash_lock flash_unlock flashcp free grep gunzip gzip halt hdparm head hexdump ifconfig insmod ionice iostat kill killall klogd less ln logger logread ls lsmod lsof lspci lsusb md5sum mkdir mkfifo mknod modinfo modprobe mount mpstat mv nanddump nandwrite nc netstat nice nslookup passwd poweroff ps pstree pwd renice rm rmdir rmmod route sed seq sleep sort strings stty swapoff swapon sync sysctl syslogd tail tar tftp time top touch tr true udhcpc udhcpd umount uniq uptime vconfig vi watch wc wget which xargs zcatв bash я несилён от слова никак
is_running() {
PID_RUNNING=$(ps -o pid,args | grep "$NFQWS_BIN" | grep -v grep | awk '{print $1}' | head -n1)
[ -z "$PID_RUNNING" ] && return 1
[ ! -f "$PIDFILE" ] && return 1
PID_SAVED=$(cat "$PIDFILE" 2>/dev/null)
[ "$PID_RUNNING" -ne "$PID_SAVED" ] && return 1
kill -0 "$PID_SAVED" 2>/dev/null || return 1
return 0
} is_running() {
# Поскольку это выглядит как embedded, будем брать PID прямо из /proc
PID_RUNNING=$(ls -l /proc/*/exe 2>/dev/null | grep "$NFQWS_BIN" | sed -re 's|^(.*/proc/)([0-9]+)(/exe.+)|\2|')
[ -z "$PID_RUNNING" ] && return 1
[ ! -f "$PIDFILE" ] && return 1
PID_SAVED=$(cat "$PIDFILE" 2>/dev/null)
[ "$PID_RUNNING" -ne "$PID_SAVED" ] && return 1
kill -0 "$PID_SAVED" 2>/dev/null
return $?
}