Мне определили новомодный сервис как:
/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 задание?
Вместо того, чтобы перезапускать сервис в фиксированные интервалы, Вы могли перезапустить сервис, когда соединение умирает. Передайте ServerAliveInterval
опция заставить ssh обнаружить поврежденное соединение быстрее. Используйте respawn
директива в Новомодном сценарии, чтобы перезапустить туннель автоматически. С другой стороны, используйте туннельную программу перезапуска ssh, такую как autossh.
В то время как "события, сгенерированные в синхронизированных интервалах", запланированная функция в Выскочке, это не готово обеспечить это все же. Таким образом, необходимо записать простой сценарий как это:
#!/bin/sh
service sshproxy restart
И помещенный это в /etc/cron.hourly
папка. Не забывайте устанавливать исполняемый бит (chmod +x /etc/cron.hourly/whatever.sh
), или это не запустится.