我有一个shell脚本,大致如下所示:
#!/bin/bash
# Script variables
NPM="/usr/bin/npm"
# Start several sub-processes in a loop in parallel
for i in {1..4}; do
$NPM run -s long_running_script >> /path/to/script/output/stream.tsv &
done
wait
为了确保长时间运行的脚本持续运行,但为了防止多个实例并行运行,我使用以下命令通过cron调用它:
0 *
在我的项目中,我们有一些脚本来启动应用程序,进行一些性能测试,然后关闭应用程序。问题是,有时脚本会发生一些不好的事情,比如崩溃。然后我们的应用程序挂在“空中”。
我想通过将pid值写入包含应用程序的pid/pids的文件来解决这个问题,但是为了正确地(我认为)我想这样做:
lock the file
process the pid/pids
clean file entries
unlock the file
然后我搜索了如何锁定Python 2.7中的文件(因为我们正在使用它来编写脚本),所以我发现了、flock和lockf方法,但是我认为做错了一些事情。
我想测试这些方法是否正常工作,所以
我得到了一个任务,使我们的软件的新版本到新的客户端,我需要使应用程序的行为,原来启动的应用程序启动另一个,并保持在后面打开。目前,当新的开始时,原来的一个是关闭的。原始应用程序是一种加载程序,它的全部目的是从服务器上下载其他应用程序并运行其中的一个。这就是为什么使用FileLock的原因,也可能是我想不出如何保持原来的版本在后台打开并成功打开新版本的原因。我设法让它在Linux上工作,但不幸的是我们的客户端使用Windows10…… 一些变量: private final List<FileLock> locks = new ArrayList<FileLock>()