Назад | Перейти на главную страницу

Как разорвать сложную строку ExecStart, оставив комментарии посередине?

У меня есть длинная командная строка, которую нужно вставить в запись ExecStart systemd. Я понимаю, что могу разбить длинную строку на несколько, завершив каждую незавершенную строку обратной косой чертой.

Однако как я могу задокументировать детали с комментариями? Например. следующее не сработает:

ExecStart=/bin/ssh -NT -o ExitOnForwardFailure=yes -o ServerAliveInterval=60 -o ServerAliveCountMax=3 \
# local tunnel for this
    -L 172.16.12.34:10001:localhost:10001 \
# remote tunnel for that
    -R3128:127.0.0.1:3128 \
    someserver

Если я удалю строки с символом «#», он будет работать, но тогда я потеряю документацию. Если детальная документация на месте частей длинной командной строки принципиально невозможна, каковы некоторые полезные альтернативы?

  1. Вместо этого напишите сценарий.
  2. Никто не мешает вам написать строчку, а затем оставить дополнительные комментарии, объясняющие ее.

Я думаю, это то, что предлагает @sven:

#
# Listen locally on port 10001 and tunnel it to someserver
# Listen on someserver port 3128 and tunnel it to localhost
#
ExecStart=/bin/ssh -NT \
    -o ExitOnForwardFailure=yes \
    -o ServerAliveInterval=60 \
    -o ServerAliveCountMax=3 \
    -L 172.16.12.34:10001:localhost:10001 \
    -R3128:127.0.0.1:3128 \
    someserver

Для меня это не так уж плохо.