LINUX.ORG.RU
ФорумAdmin

симлинк странно срабатывает при запуске

 ,


0

1

Скрипт S90zerotier-one.sh при запуске вручную нормально отрабатывает все опции:

# /opt/etc/init.d/S90zerotier-one.sh
Usage: zerotier {start|stop|restart|status}

# /opt/etc/init.d/S90zerotier-one.sh status
ZeroTier-One is running.
# /opt/etc/init.d/S90zerotier-one.sh stop
# /opt/etc/init.d/S90zerotier-one.sh status
ZeroTier-One is NOT running

# ps ax | grep zer
 4253 root      0:00 grep zer

# /opt/etc/init.d/S90zerotier-one.sh start
# /opt/etc/init.d/S90zerotier-one.sh status
ZeroTier-One is running.
# ps ax | grep zer
 4273 root      0:00 /opt/bin/zerotier-one -d

zerotier-one - симлинк в том же каталоге:

# ls -l /opt/etc/init.d/zerotier-one
lrwxrwxrwx    1 root     root            34 Dec 24 17:53 /opt/etc/init.d/zerotier-one -> /opt/etc/init.d/S90zerotier-one.sh

Но при его запуске почему-то опции не срабатывают все:

# /opt/etc/init.d/zerotier-one status
ZeroTier-One is running.

# /opt/etc/init.d/zerotier-one stop
Terminated

но показывает статус запущенного процесса

# /opt/etc/init.d/zerotier-one status
ZeroTier-One is running.

хотя его нет в списке

# ps ax | grep zer
 4501 root      0:00 grep zer

# /opt/etc/init.d/zerotier-one start
ZeroTier-One is already running.

но его опять же нет в списке процессов

# ps ax | grep zer
 4543 root      0:00 grep zer


Последнее исправление: zorinquen (всего исправлений: 2)

Ответ на: комментарий от MaddyDick228
#!/bin/sh

case "$1" in

  start)
    if [[ $(pidof zerotier-one &> /dev/null; echo $?) -eq 0 ]]; then
      echo "ZeroTier-One is already running."
    else
      /opt/bin/zerotier-one -d
    fi
    ;;

  stop)
    if [[ $(pidof zerotier-one &> /dev/null; echo $?) -eq 0 ]]; then
      killall zerotier-one
    else
      echo "ZeroTier-One was not running" ;
    fi
    ;;

  restart)
    if [[ $(pidof zerotier-one &> /dev/null; echo $?) -eq 0 ]]; then
      killall zerotier-one
    fi
    /opt/bin/zerotier-one -d
    ;;

  status)
    if [[ $(pidof -s zerotier-one &> /dev/null; echo $?) -eq 0 ]]; then
      echo "ZeroTier-One is running."
    else 
      echo "ZeroTier-One is NOT running"
    fi
    ;;
  *)

    echo "Usage: zerotier {start|stop|restart|status}"
    exit 1
    ;;
esac

exit 0
zorinquen
() автор топика

Одинаковое имя скрипта и бинарника. Ты убиваешь и бинарник и сам себя (скрипт). Известная ошибка начинающих.

futurama ★★★★★
()
Ответ на: комментарий от zorinquen

мог бы и убивать по команде pkill -f /opt/bin/zerotier-one

futurama ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.