/dev/log
システムロギングの基本項目です。 systemd 実装 (この例) の場合、/run/systemd/journal/dev-log
syslog デーモンによって処理された Unix ソケットの受信端が何であるかを指します。
~$ echo "hello" > /dev/log
bash: /dev/log: No such device or address
~$ fuser /dev/log
~$ ls -la /dev/log
lrwxrwxrwx 1 root root 28 Aug 23 07:13 /dev/log -> /run/systemd/journal/dev-log
書き込みをしようとしたときに表示されるエラーの説明は何ですか?プロセスがfuser /dev/log
空の出力からファイルを保存しないのはなぜですか?
システムでロギングが正しく機能しています。
~$ logger test
~$ journalctl --since=-1m
-- Logs begin at Thu 2018-05-24 04:23:46 CEST, end at Thu 2018-08-23 13:07:25 CEST. --
Aug 23 13:07:24 alan-N551JM alan[12962]: test
コメントの提案に拡張
~$ sudo fuser /dev/log
/run/systemd/journal/dev-log: 1 311
~$ ls -lL /dev/log
srw-rw-rw- 1 root root 0 Aug 23 07:13 /dev/log
ベストアンサー1
コメントを完全な回答にまとめています。気づくツイートをサイトに埋め込む正しい解決策を最初に指摘してください。
出力に示すように、ls -lL
リンクが指すファイルは次のとおりです。ソケット、通常のファイルやパイプではありません。
~$ ls -lL /dev/log
srw-rw-rw- 1 root root 0 Aug 23 07:13 /dev/log
出力の最初の文字を見てください。これはs
ファイルがソケットであることを意味します。
>
bash
シェルが試みているので、ソケットに書き込むために(またはAFAIK、他のシェル)リダイレクトメカニズムを使用することはできません。開いているこのファイルはソケットをサポートしませんopen
。バラより男が開くもっと学ぶ。
ソケットに接続するプログラムを使用する必要があります。バラより人々はつながるもっと学ぶ。
たとえば、次のように使用できます。netcat
またはsocat
(参照Debian Squeezeでシェルを介してUnixドメインソケットと通信するには?)。
完全性のためにパイプからリダイレクトを使用できます。
~$ mkfifo /tmp/fifo
~$ ls -l /tmp/fifo
prw-rw-rw- 1 root root 0 27 ago 15.04 /tmp/fifo
~$ echo "hello" > /tmp/fifo
ls
出力の最初の文字を見てください。これはp
ファイルがパイプであることを意味します。