私はDaemon::Genericを使用しようとしていますが、Solaris を除いて、まさに私が必要としているもののようです。pid ファイルのロックが機能しないようです。その結果、status
プロセスが明らかに生きている場合でも、常にプロセスが死んでいると報告されます。
たとえば、次のようになります。
use Daemon::Generic;
sub gd_run
{
sleep (60);
}
sub gd_preconfig
{
return ();
}
newdaemon(pidfile => "/tmp/myproc.pid");
...常にプロセスが停止していると報告します。
はローカル/tmp
にマウントされているため、ネットワーク ドライブを介したロックの問題を回避できるようです。
これを機能させる方法はありますか?
編集:
詳細な調査では、sleep 60
のさまざまなポイントにコマンドを配置Generic.pm
することで、関数 のどこかでロックが失われているように見えますgd_daemonize
。ロックは Solaris のフォークに耐えられませんか? ロックがプロセスを生き残ることを保証する方法はありdaemonize
ますか?