2


1

* nix: "echo 'start working'> /etc/.example":これはどのように実装されますか?

誰かが端末で次を実行するとします。

echo 'start working' > /etc/.example

そして、これが実行されると、サンプルプログラムは「動作を開始します」。

UNIX(のような)システムでは、そのようなものはどのように実装されますか?このような動作は何と呼ばれますか?

1 Answer


6


これを行う一般的な方法は2つあります。

1つは、書き込み先のファイルは、実際にはプログラムが読み取っているhttp://en.wikipedia.org/wiki/Named_pipe [名前付きパイプ]であり、他のファイルと同様に「作業開始」文字列を受け取ることです。入力ストリームの種類(ネットワークソケット、標準入力など)。

もう1つ(Linux固有)は、書き込まれるファイルが通常のファイルであり、プログラムはhttp://en.wikipedia.org/wiki/Inotify[inotify](または古いファイルにdnotifyを使用してファイルの変更を監視していることです。システム)。 ファイルが変更されたことを示すinotifyイベントを受信すると、その内容を読み取り、「作業開始」文字列を取得します。

これらのメソッドは両方とも、問題のプログラムがすでにバックグラウンドで実行されている(そして何もしていない)ことを必要とすることに注意してください。 たとえば、上記の2つのことのいずれかを実行するプログラムの起動を担当するバックグラウンドプロセスがない限り、この方法でプログラムを_起動_する方法はありません。