Перейти к содержанию

etty80

Участники форума
  • Постов

    1
  • Зарегистрирован

  • Посещение

Оборудование

  • Кинетик
    Hopper SE

Достижения etty80

Новичок

Новичок (1/6)

0

Репутация

  1. Добрый день, уважаемые господа. 1. TorrServer имеет тенденцию часто падать, написал watchdog скрипт, не без помощи нейросетей. Сам скрипт работает, если запустить его из терминала руками, но не запускается автоматически при ребуте. 2. Скрипт лежит в /opt/etc/init.d/ с именем S95torrserver 2.1 Я пробовал закидывать его в хуки ndm, но он все равно не работает автоматически 3. Я не очень хочу использовать ext-ui, так как там крутится куча всего ненужного, но я все равно попробовал - в webui показывается, что скрипт должен загружаться автоматически, но этого не происходит. К сожалению, не хватает знаний, чтобы понять что не так и как сделать автозапуск при ребуте. #!/bin/sh NAME="torrserver" DAEMON="/opt/sbin/torrserver" PIDFILE="/var/run/${NAME}.pid" WATCHDOG_PIDFILE="/var/run/${NAME}_watchdog.pid" # Create /var/run if missing [ -d /var/run ] || mkdir -p /var/run # TorrServer options (if needed) TORRSERVER_OPTS="" start_daemon() { echo "Starting $NAME..." $DAEMON $TORRSERVER_OPTS >/dev/null 2>&1 & TORR_PID=$! echo $TORR_PID > "$PIDFILE" echo "$NAME started with PID $TORR_PID" } start_watchdog() { ( while true; do if [ -f "$PIDFILE" ]; then PID=$(cat "$PIDFILE") if ! kill -0 "$PID" 2>/dev/null; then echo "Watchdog: $NAME (PID: $PID) not running, restarting..." start_daemon fi else echo "Watchdog: PID file missing, starting $NAME..." start_daemon fi sleep 5 done ) & WATCHDOG_PID=$! echo $WATCHDOG_PID > "$WATCHDOG_PIDFILE" echo "Watchdog started (PID: $WATCHDOG_PID)" } stop_watchdog() { if [ -f "$WATCHDOG_PIDFILE" ]; then WD_PID=$(cat "$WATCHDOG_PIDFILE") echo "Stopping watchdog (PID: $WD_PID)..." kill "$WD_PID" 2>/dev/null rm -f "$WATCHDOG_PIDFILE" fi killall S95torrserver 2>/dev/null } stop_daemon() { if [ -f "$PIDFILE" ]; then PID=$(cat "$PIDFILE") echo "Stopping $NAME (PID: $PID)..." kill "$PID" 2>/dev/null rm -f "$PIDFILE" echo "$NAME stopped" else echo "$NAME not running" fi } start() { if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then echo "$NAME already running (PID: $(cat $PIDFILE))" return 1 fi start_daemon start_watchdog } stop() { echo "Stopping $NAME service..." stop_watchdog stop_daemon } restart() { stop sleep 2 start } status() { if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then echo "$NAME running (PID: $(cat $PIDFILE))" else echo "$NAME not running" fi if [ -f "$WATCHDOG_PIDFILE" ] && kill -0 "$(cat "$WATCHDOG_PIDFILE")" 2>/dev/null; then echo "Watchdog running (PID: $(cat $WATCHDOG_PIDFILE))" else echo "Watchdog not running" fi } case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status ;; *) echo "Usage: $0 {start|stop|restart|status}" ;; esac exit 0
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.