Você faria algo como:
#!/bin/bash
regex="plexdrive.*Could not update\/save object"
journalctl -f -n 0 |
while read line
do
if [[ "$line" =~ $regexp ]]; then
systemctl restart PLEX_SERVICE
fi
done
journalctl fornece a saída do diário do sistema. -f usa o modo de acompanhamento, para que o comando fique lá e forneça novas entradas de diário. -n 0 diz para não dar a você nenhum dos lançamentos anteriores.
A saída é canalizada para while read line . Isso lê infinitamente a partir do fluxo de saída de journalctl , colocando cada linha na variável de shell line .
=~ é o operador expressão regular do Bash. Aqui, apenas verifica se a linha contém plexdrive e em algum lugar depois disso Could not update/save object . Se a expressão regular corresponder, então a linha systemctl restart PLEX_SERVICE