Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个写入文件然后将该文件转储到数据库的脚本。我需要这个任务尽可能频繁地运行,但不要同时运行多个实例(或者它会将多余的东西写入同一个文件)。
我目前的做法是在我正在检查文件是否存在的 shell 脚本中,如果存在,我退出脚本。在每个脚本结束时,它会删除该文件。
这在 95% 的时间里都有效。但是,如果服务器重新启动(这种情况经常发生),正在写入的文件将保留,并且每次调用该脚本时它都会退出,因为该文件已经存在。
解决这个问题的好方法是什么?
您可以检查是否有任何进程正在使用带有“fuser”的文件。它将返回使用该文件的任何程序的 PID。如果没有 PIDS,您可以安全地擦除它并重新开始。