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
, по-видимому, используется исключительно для определения того, должен ли он окрашивать вывод.