Closed leeyr338 closed 5 years ago
启动微服务出错场景:
.pid
以上场景会导致微服务启动失败,出错信息为:
WARN - cita-network already started, pid is 5617
其实这时,微服务是没有启动的。 见: https://talk.citahub.com/t/topic/523/5 https://github.com/cryptape/cita/issues/407
更多信息: 程序在 check_process 中处理逻辑不正确。
check_process
// whether process exsit fn check_process(pidfile: String) -> Option<u32> { // read pid from pidfile let pid: u32 = read_pid(pidfile); if pid == 0 { None } else { let pid_str = pid.to_string(); let args = vec!["-p", &pid_str, "-o", "pid="]; let output = Command::new("ps") .args(args) .output() .expect("failed to execute ps -p"); if output.status.success() { let otpt_str = String::from_utf8(output.stdout).unwrap(); if otpt_str.contains(&pid.to_string()) { Some(pid) } else { None } } else { None } } }
程序需要检查 pid 号外,还需检查微服务名是否一致,才能判定微服务已经启动。
程序在 check_process 中处理逻辑不正确。
What about this?
启动微服务出错场景:
.pid
文件;.pid
文件中 pid 号相同的进程已经在执行;以上场景会导致微服务启动失败,出错信息为:
其实这时,微服务是没有启动的。 见: https://talk.citahub.com/t/topic/523/5 https://github.com/cryptape/cita/issues/407
更多信息: 程序在
check_process
中处理逻辑不正确。程序需要检查 pid 号外,还需检查微服务名是否一致,才能判定微服务已经启动。