systemctl
çıktının ne zaman renklendirileceğini belirleyen bir mekanizmaya sahip gibi görünmüyor. Hızlı bir çözüm isatty(3)
her zaman gerçeğe dönmek için şimşek olacaktır, böylece systemctl
düşünme stdout'una kandırmak interaktiftir. Yani şunları yapabilirsiniz:
# 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 -
Sonunda gcc
komut bildirir gcc
(Cı kodunu derlemek için -xc
standart giriş dan) ( -
). Bayrakların geri kalanı gcc
adlı bir paylaşılan nesne dosyası oluşturmayı söyler isatty.so
. Bunun isatty
meşru bir değer döndürmeye dayanan diğer programları çok iyi bozabileceğini unutmayın . Ancak için iyi görünüyor systemctl
olarak isatty
görünür sadece onun çıkışını renk gerekip gerekmediğini belirlemek amacıyla kullanılacak.