systemctl
scheint keinen Mechanismus zu haben, der angibt, wann die Ausgabe eingefärbt werden soll. Eine schnelle Lösung wäre, Shim isatty(3)
immer zurück zu kehren, um systemctl
zu denken, dass stdout interaktiv ist. Sie könnten nämlich folgendes tun:
# 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
Am -xc -
Ende des gcc
Befehls wird gcc
C code ( -xc
) aus stdin ( -
) kompiliert . Die restlichen Flags geben gcc
an, eine gemeinsam genutzte Objektdatei mit dem Namen zu erstellen isatty.so
. Beachten Sie, dass dies sehr wahrscheinlich andere Programme zerstören kann, auf isatty
die ein legitimer Wert zurückgegeben wird. Es scheint jedoch in Ordnung zu sein, systemctl
da es isatty
scheint, als würde es ausschließlich dazu verwendet, um zu bestimmen, ob es seine Ausgabe farbig machen soll.