Объедините head
и tail
, как в этих двух примерах:
$ seq 1 80 | head -n 17 | tail -n 1
17
$ seq 1 10 | head -n 17 | tail -n 1
10
Итак, чтобы решить вашу актуальную проблему, введите команду:
watch 'for f in *; do head -n 17 -- "$f" 2>/dev/null | tail -n 1 ; done'
Обратите внимание на часть 2>/dev/null
, она необходима, потому что *будет соответствовать каталогам и любым файлам, на чтение которых у вас может не быть разрешения, что приведет к появлению сообщения об ошибке, которое вы, вероятно, захотите скрыть.
Необходимость systemctl daemon-reload
зависит от того, как ведет себя ваша служба. Со страницы руководства для systemctl (1 ),
daemon-reload
Reload the systemd manager configuration. This will rerun all generators (see systemd.generator(7)), reload all unit files, and recreate the entire dependency tree.
Например, предположим, что у вашего сервиса есть зависимости или конфликты. Тогда вы можете использовать daemon-reload
. Если это простой сервис, он может не нуждаться в этом.
При первом enable
запуске службы конфигурация администратора системы перезагружается. Таким образом, если вы хотите протестировать свою службу с помощью start
, вам не нужно daemon-reload
, если у вас enable
d ваша служба.
Опять же, из справочной страницы для systemctl (1 ),
enable UNIT..., enable PATH...
This will create a set of symlinks, as encoded in the [Install] sections of the indicated unit files. After the symlinks have been created, the system manager configuration is reloaded (in a way equivalent to daemon-reload), in order to ensure the changes are taken into account immediately.
Если вы хотите внести изменения в файл сервисного модуля и повторно протестировать его, вы можете выполнить daemon-reload
в зависимости от того, что это за изменения. В любом случае, daemon-reload
можно сделать, и система может попросить вас сделать это, когда вы start
выполняете свою услугу.