在我的ruby腳本中,我已經提出了以下代碼,以確保當另一個進程已經運行時,不應該再次並行執行相同的腳本。ruby文件執行鎖定以避免同一腳本的多個進程
if $0 == __FILE__
if File.new(__FILE__).flock(File::LOCK_EX | File::LOCK_NB)
if RbConfig::CONFIG['host_os'].include? 'linux'
linux_main
elsif RbConfig::CONFIG['host_os'].include? 'mingw'
windows_main
elsif RbConfig::CONFIG['host_os'].include? 'solaris'
solaris_main
end
end
end
__END__
但它在Windows上不能正常工作。我已經啓動了一個進程,並且當我運行時在另一個powershell會話中啓動另一個進程,但它仍在運行,而不是出來。
任何建議請。