Cuando ejecuto un comando como este:
# systemctl status plexmediaserver
Obtengo una salida bien coloreada. Pero cuando ejecuto el siguiente comando:
# watch -n300 --color systemctl status plexmediaserver
¿Hay alguna forma de hacer este watch
comando con color systemctl
? He buscado la página de manual systemctl
pero no veo ninguna referencia al color en ninguna parte.
Respuestas:
man systemd
dicees decir, puede forzar el modo de color con eso.
fuente
SYSTEMD_COLORS
hace algo más que el nombre sugiere, debido a mediados 2.018 soporte para hacer clic en enlaces consiguió introdujo, salida de basura con algunos códigos de escape y URLs urlified - que, afortunadamente, se puede apagar conSYSTEMD_URLIFY=0
systemctl
no parece tener un mecanismo para especificar cuándo colorear la salida. Una solución rápida sería calzarisatty(3)
para volver siempre verdadero, por lo que engañarsystemctl
a pensar que stdout es interactivo. A saber, podrías hacer:Al
-xc -
final delgcc
comando le dicegcc
que compile el código C (-xc
) a partir de stdin (-
). El resto de las banderas le indicangcc
que cree un archivo de objeto compartido llamadoisatty.so
. Tenga en cuenta que esto podría muy bien romper otros programas que dependenisatty
para devolver un valor legítimo. Sin embargo, parece estar bien,systemctl
ya queisatty
parece ser utilizado únicamente con el fin de determinar si debe colorear su salida.fuente
Basado en la respuesta de @ KarlC , aquí hay un script que genera y luego incluye la biblioteca en tiempo de ejecución:
fuente