Systemdは、コントロールコードを使用してステータス行の前にポイントを挿入するのが好きです。
$ systemctl status sshd
● sshd.service - OpenSSH server daemon
vis(20個のスペースの前にe2 97 8fがあります):
$ systemctl status sshd | od -tx1 | head -1
0000000 e2 97 8f 20 73 73 68 64 2e 73 65 72 76 69 63 65
これを防ぎ、systemdがASCII文字セットのみを使用するようにするにはどうすればよいですか?
TERM = dumb、LANG = C、およびSYSTEMD_COLORS = falseを使用すると、点の色が変わります。
systemctl | strings
ハッカーのような感じ。
答え1
これは制御文字自体ではなく、単にクールなUnicode文字の外観です(U+25CF 黒丸)。使用される場合は、systemctl
ロケールによって異なります。 Unicode ロケールがないと言うと、ASCII アスタリスクが表示されます。
$ LC_CTYPE=C systemctl status sshd
* ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since...
または、LC_ALL=C
より重いハンマーを使用してください。
答え2
明らかに次の組み合わせがあります。
$ LANG=C SYSTEMD_COLORS=false systemctl status sshd
* sshd.service - OpenSSH server daemon
正しいことをしてください。
答え3
ロケール(LC_CTYPE
、LC_ALL
)の変更を適用できませんでしたが、次のようにしました。
export PAGER=cat
systemctl status myservice