Присоедините к существующему туннелю ssh

Per jasonwryan's comment, в то время как по умолчанию Type=simple работает для многих Systemd служебных файлов, он не работает, когда скрипт в ExecStart запускает другой процесс и завершает его, как в случае с carbon-cache.py графита. В этих случаях необходимо явно указать Type=forking в разделе [Service], чтобы Systemd знал, что нужно смотреть на порожденный процесс, а не на исходный.

Как объяснено в man systemd.service:

Если установлено вилку, то ожидается, что процесс, сконфигурированный с помощью При запуске ExecStart= будет вызывать fork(). Родительский ожидается, что процесс завершится после завершения запуска, и все каналы связи установлены. Ребенок продолжает работать как главный демонический процесс. Это поведение традиционных UNIX-демон. Если эта настройка используется, рекомендуется также использовать PIDFile= вариант, чтобы systemd мог идентифицировать основной процесс демона. systemd приступит к запуску последующих модулей, как только родительский процесс завершается.

Graphite-Specific Answer

В то время как вышеуказанное решило мою проблему с Systemd, я быстро столкнулся с проблемами, специфичными для графики (с Twisted) и вернулся к стандартным Type.

Graphite

В предыдущих версиях Graphite можно было избежать форкинга только с помощью опции --debug:

[Service]
ExecStart=/opt/graphite/bin/carbon-cache.py --debug start

Graphite >= 0.9. 13

В этом pull request опция -нетдемон была объединена:

[Service]
ExecStart=/opt/graphite/bin/carbon-cache.py --no-daemon start

1
03.03.2014, 23:13
2 ответа

Если вы уже настроили свой туннель от A к C через B, тогда

Вы хотите

#user@D: ssh -N user@A -L 9999:localhost:9999

#user@D: telnet localhost 9999
2
27.01.2020, 23:28

Вы просто создаете еще один туннель, он не подключается к существующему туннелю. Вы, вероятно, захотите вместо этого подключиться к «localhost» на машине A (вместо C, которая уже туннелирована через B от A).

1
27.01.2020, 23:28

Теги

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