在我的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会话中启动另一个进程,但它仍在运行,而不是出来。
任何建议请。