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здається, використовується виключно для того, щоб визначити, чи слід фарбувати його вихід.