Почему эта пользовательская служба systemd с конвейерным выводом не отображается в журналах journald

#!/bin/bash 

cat fileA.txt | sed 1d | while IFS=';' read -r line; do #read fileA.txt starting with line #2
name=$(echo $line | awk '{print $1}') #find names in each line/column 1 of the table 
lock_status=$(grep $name fileB.txt | awk '{print $5}') # find lock/unlock status in fileB.txt

    if [[ "$lock_status" -eq 0 ]];then 

    echo "Locked: To mail the user : replace echo by the command mail";

        else

    echo "unlocked";
     fi
done
2
06.01.2021, 02:17
1 ответ

Итак, я немного повозился с этим, и похоже, что проблема была просто в том, что grepбуферизует свой вывод, а затем не показывает его даже после завершения команды... все еще не уверен, почему это кейс.

Решение?

ping google.com | grep --line-buffered '.'

ИЛИ

ping google.com | stdbuf --output=L grep '.'

Согласно этому ответу на SO вывод может не отображаться из-за того, что буфер вывода еще не заполнен. Так что это объясняет, почему даже после выхода из программы вывод не отображается.

0
18.03.2021, 22:38

Теги

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