Задать вопрос
@Quqas

Как переписать скрипт чтоб без pgrep?

часть скрипта
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
}

проблема в том что в busybox нету pgrep
есть только
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 я несилён от слова никак.

кому из гуру не лень помочь скрипт переделать чтоб избавившись от pgrep тот же результат достичь?
  • Вопрос задан
  • 31 просмотр
Подписаться 2 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@maksam07
в 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
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы