Perlスクリプトで数分ごとに特定のPIDをチェックしてから、プロセスを強制終了するようにします。数分待つにはどうすればいいですか?ありがとう。
sleep (n);
ここで、nはスリープする秒数です。
Perlプログラムを設定された時間または時間間隔で実行する場合は、crontab
または別のスケジューラーを検討する必要があります。
Perlスクリプト内から待機を実行する場合、簡単にデプロイできるオプションがいくつかあります。
sleep($n)
システムコール($ nは秒の数値)usleep($n)
システムコール($ nはマイクロ秒の数値)Time :: HiRes は多くの機能を提供し、その一部はシステムコールをオーバーライドします。一部の関数には、sleep()
、usleep()
、nanosleep()
、alarm()
、ualarm()
が含まれます
usleep()
へのシステムコールとは異なり、 Time :: HiRes でパッケージ化されたものでは、1秒以上スリープできます。
use Time::HiRes qw( usleep ualarm gettimeofday tv_interval nanosleep
clock_gettime clock_getres clock_nanosleep clock
stat );
ほとんどの場合、1つのプロセスがバックグラウンドでスリープしている間にメインプログラムが動作し続けることができるように、プロセスを分岐する必要があります。
sleep()
を使用します。
_sleep(120); # sleep for 120 seconds
_
1秒よりも細かい粒度の遅延の場合、 _Time::HiRes
_からのusleep
を使用できます モジュール。 Perlの select()
の4引数バージョンを使用することもできます。最初の3つの引数は未定義のままです。
_select(undef, undef, undef, 0.25); # sleep for 250 milliseconds
_
または、1秒が長すぎる場合はusleep(microseconds)
を試すことができます。 sleep(0)
は単にOSに譲ります(プロセスがスケジューラに残っている時間を破棄します)。これらの関数はすべて、最小スリープ時間を要求します。負荷の高いシステムでは、時間が多少長くなる場合があります。
sleepとusleepはC関数ですが、Perl、pythonなどには、下層のCのものを呼び出す関数があります。 usleep manページ、BSDバージョン、 Googleをお試しください)