/dev/log 確認

/dev/log 確認

/dev/logシステムロギングの基本項目です。 systemd 実装 (この例) の場合、/run/systemd/journal/dev-logsyslog デーモンによって処理された 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ファイルがパイプであることを意味します。

おすすめ記事