systemctl
по-видимому, не имеет механизма для указания, когда окрашивать вывод. Быстрое решение состоит в том, чтобы прокладка isatty(3)
всегда возвращала истину, таким образом, обманчивый systemctl
вывод в интерактивный режим. А именно вы могли бы сделать:
# echo "int isatty(int fd) { return 1; }" | gcc -O2 -fpic -shared -ldl -o isatty.so -xc -
# LD_PRELOAD=./isatty.so watch -n300 --color systemctl status plexmediaserver
В -xc -
конце gcc
команды указывается gcc
компилировать код C ( -xc
) из stdin ( -
). Остальные флаги говорят gcc
о создании общего объектного файла с именем isatty.so
. Обратите внимание, что это может привести к поломке других программ, которые isatty
возвращают допустимое значение. Это , однако , как представляется , будет хорошо для , systemctl
как isatty
представляется , будет использоваться исключительно для целей определения , если она должна окрашивать свою продукцию.