![PIDをファイルに保存する方法[閉じる]](https://linux33.com/image/142198/PID%E3%82%92%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
少なくとも1つのファイルにpid番号を保存する必要があります。どうすればいいですか?
答え1
PIDファイルは、プロセス自体によって生成されるか、メインプログラムを起動した後にPIDファイルを作成するヘルパープログラムによって生成できます。
Unixファミリーシステムでは、通常、システムコールを使用してfork()
新しいプログラムを作成します。呼び出しプロセスのコピーを作成し、親プロセスでは子プロセスID(PID)を返し、子プロセスでは0を返します。親プロセス(ヘルパープログラム)はPIDをPIDファイルに保存できます。その後、新しいプログラムを起動するために使用されます。exec()
fork()
exec()
プロセスはgetpid()
システムコールを使用して独自のPIDを取得し、それをファイルに保存できます。
シェルでプログラムを起動している場合は、たとえばstart-stop-daemon
(Debianベースのシステムでは)プログラムを起動した後にPIDファイルを作成できるヘルパープログラムを使用できます。プログラムが自分自身を悪魔化している場合は、変数にアクセスしてシェルにPIDを保存することもできます$$
。