Как перезапускать сервис каждый час в выскочке?

Мне определили новомодный сервис как:

/etc/init/sshproxy.conf

description    "Lenik's secret tunnel thru *.ssh.myserver.com"
author        "谢继雷 (Lenik)"

start on (net-device-up IFACE!=lo)
stop on runlevel[!2345]

script

    # -T disable pseudo-tty allocation
    # -f go to background after login but before command exec
    # -n stdin from /dev/null, must be used when ssh is run in bg.
    # -N no command
    # -D "dynamic" app-level port forwarding.
    sudo -usshproxy ssh -qTfn -ND *:7878 ssh.myserver.com

end script

Но туннель ssh, кажется, zombied после нескольких часов, таким образом, я хочу перезапустить его каждый час, как сделать это в этом .conf файле, или я должен записать другое cron.hourly задание?

2
задан 31.10.2011, 04:38

2 ответа

Вместо того, чтобы перезапускать сервис в фиксированные интервалы, Вы могли перезапустить сервис, когда соединение умирает. Передайте ServerAliveInterval опция заставить ssh обнаружить поврежденное соединение быстрее. Используйте respawn директива в Новомодном сценарии, чтобы перезапустить туннель автоматически. С другой стороны, используйте туннельную программу перезапуска ssh, такую как autossh.

2
ответ дан 08.12.2019, 05:08

В то время как "события, сгенерированные в синхронизированных интервалах", запланированная функция в Выскочке, это не готово обеспечить это все же. Таким образом, необходимо записать простой сценарий как это:

#!/bin/sh
service sshproxy restart 

И помещенный это в /etc/cron.hourly папка. Не забывайте устанавливать исполняемый бит (chmod +x /etc/cron.hourly/whatever.sh), или это не запустится.

5
ответ дан 08.12.2019, 05:08

Теги

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