今天遇到一个随机事件,说一个程序的逻辑是开始运行会向一个文件写入执行时的pid,当下一次这个程序再重新启动的时候,可以根据个文件里的pid,kill之前的进程。防止重复的程序同时跑两个实例。
但是不巧,之前的进程已经终止,但是文件内容没有做相应的调整pid。
导致随机事件出现,新起来的程序还是会kill这个文件里存的pid,但是这个pid已经不知道是属于哪一个进程了。如果这个pid没有被占用,倒是可以继续执行,但是如果pid是另一个程序的进程号,这就会导致问题。
运气好!问题是在研发测试的时候发现,不然真到了现场,不一定好debug这类问题。