file, err := os.OpenFile(pidFile, os.O_CREATE|os.O_WRONLY, os.ModePerm)
should be:
file, err := os.OpenFile(pidFile, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, os.ModePerm)
应该添加os.O_TRUNC 标签,不然当服务重启时,如果pid的长度大于新进程ID长度,会有问题。
如pid:12345,新的进程ID为:789,pid文件存的进程ID为:78945,导致后续启动失败。
file, err := os.OpenFile(pidFile, os.O_CREATE|os.O_WRONLY, os.ModePerm)
should be:
file, err := os.OpenFile(pidFile, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, os.ModePerm)
应该添加os.O_TRUNC 标签,不然当服务重启时,如果pid的长度大于新进程ID长度,会有问题。
如pid:12345,新的进程ID为:789,pid文件存的进程ID为:78945,导致后续启动失败。