Может ли служба systemd зависеть от удаленной службы systemd?

Один из вариантов — выводить временную метку файла вместе с путем к файлу, сортировать по нему и затем удалять :

.
find -type f -name "*.gz" -printf '%C@\t%p\n'|sort -nk1|cut -f2-|xargs zcat 

Обратите внимание: если ваши имена файлов могут содержать потенциально небезопасные символы (, такие как пробелы ), просто замените

xargs zcat 

с

xargs -d "\n" zcat 

и если вам нужно учесть символы новой строки в именах файлов, вы можете использовать нулевой байт для завершения записей, как подробно описано в ответе @stéphane -chazelas (, поскольку на практике это редко является проблемой ).

2
13.05.2019, 20:45
2 ответа

Если удаленная служба systemd открывает какой-либо порт на удаленном сервере, вы можете проверить, открыт ли этот порт из вашей локальной службы systemd. Используя bash, вы можете написать что-то вроде

while ! echo > /dev/tcp/remoteserver/someport; do
  echo "waiting for remote service..."
  sleep 5s
done

Конечно, вам нужно указать systemd не запускать эту службу, пока сеть не будет готоваhttps://wiki.archlinux.org/index.php/Systemd#Running_services_after_the_network_is_up

1
27.01.2020, 22:17

Возможно, что-то вроде ExecStartPre=systemctl --host=service-user@remote-host start remote-serviceможно использовать в ExecStartPre локального файла службы.

1
30.10.2020, 07:38

Теги

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