systemctlを使用してサービス状態を印刷するときのポイントを抑制します。

systemctlを使用してサービス状態を印刷するときのポイントを抑制します。

実行時にサービス名の左側に印刷される点をどのように抑制できますかsystemctl status XXX?このコマンドの出力をbash変数に保存して印刷したいです。出力にドットがあると、スクリプトは失敗します。これは、ドットがUnicode文字であるためである可能性が高いです。

# systemctl status network
● network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
   Active: active (exited) since Thu 2018-10-11 09:16:29 PDT; 6h ago
     Docs: man:systemd-sysv-generator(8)

Oct 11 09:16:24 172.100.139.200 systemd[1]: Starting LSB: Bring up/down networking...
Oct 11 09:16:24 172.100.139.200 network[1376]: Bringing up loopback interface:  [  OK  ]
Oct 11 09:16:28 172.100.139.200 network[1376]: Bringing up interface eth0:  [  OK  ]
Oct 11 09:16:29 172.100.139.200 systemd[1]: Started LSB: Bring up/down networking.

答え1

解決したい問題が出力の一部としてUnicode文字を使用しない場合は、UTF-8を使用しないロケールでsystemdコマンドを呼び出すことができます。この場合、systemdは*点の代わりにを印刷します。

LC_CTYPECあるいは、などの変数を設定して、UTF-8以外のロケールを単一のコマンドで一時的に設定することもできますPOSIX

たとえば、

# LC_CTYPE=C systemctl status network
* network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
   Active: active (exited) since Thu 2018-10-11 09:16:29 PDT; 6h ago
     Docs: man:systemd-sysv-generator(8)

Oct 11 09:16:24 172.100.139.200 systemd[1]: Starting LSB: Bring up/down networking...
Oct 11 09:16:24 172.100.139.200 network[1376]: Bringing up loopback interface:  [  OK  ]
Oct 11 09:16:28 172.100.139.200 network[1376]: Bringing up interface eth0:  [  OK  ]
Oct 11 09:16:29 172.100.139.200 systemd[1]: Started LSB: Bring up/down networking.

答え2

バラよりman systemctl

状態

この関数は、人間が読める出力を生成するように設計されています。コンピュータで解析可能な出力を探している場合show。 ...

展示する

表示する特定の属性を選択するには、を使用します--property=。このコマンドは、コンピュータで解析可能な出力が必要な場合に使用するためのものです。

関連情報