Я знайшов цей системний файл сервісу для запуску автоматичного пошуку, щоб не підтримувати ssh-тунель: https://gist.github.com/thomasfr/9707568
[Unit]
Description=Keeps a tunnel to 'remote.example.com' open
After=network.target
[Service]
User=autossh
# -p [PORT]
# -l [user]
# -M 0 --> no monitoring
# -N Just open the connection and do nothing (not interactive)
# LOCALPORT:IP_ON_EXAMPLE_COM:PORT_ON_EXAMPLE_COM
ExecStart=/usr/bin/autossh -M 0 -N -q -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -p 22 -l autossh remote.example.com -L 7474:127.0.0.1:7474 -i /home/autossh/.ssh/id_rsa
[Install]
WantedBy=multi-user.target
Чи є спосіб налаштувати systemd для запуску декількох тунелів в одній службі.
Я не хочу створювати N системних службових файлів, оскільки хочу уникати копіювання + вставлення.
Усі сервісні файли були б ідентичними, за винятком того, що "remote.example.com" буде замінено іншими іменами хостів.
Через 1,5 року ...
Я задав це питання приблизно 1,5 року тому.
Моя думка трохи змінилася. Так, приємно, що ви можете це зробити з systemd (я все ще використовую його), але я буду використовувати конфігураційне управління в майбутньому.
Чому systemd повинен реалізовувати мову шаблону та замінювати% h?
Через кілька місяців я думаю, що цю петлю та шаблони слід вирішити інструментом, який автоматизує конфігурацію. Зараз я користуюся одним інструментом цього списку у Вікіпедії .