From: Sage Weil Date: Sun, 1 Mar 2009 00:25:29 +0000 (-0800) Subject: fix pid file removal X-Git-Tag: v0.7~92 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a0cbcc0e534aa314bf5f951971daed76628179ef;p=ceph.git fix pid file removal --- diff --git a/src/msg/SimpleMessenger.cc b/src/msg/SimpleMessenger.cc index 35674ec2a1d6..aee08cc8ad6a 100644 --- a/src/msg/SimpleMessenger.cc +++ b/src/msg/SimpleMessenger.cc @@ -359,13 +359,17 @@ static void remove_pid_file() // only remove it if it has OUR pid in it! int fd = ::open(g_conf.pid_file, O_RDONLY); if (fd >= 0) { - char actual[20], correct[20]; - sprintf(correct, "%d\n", getpid()); - ::read(fd, actual, 20); + char buf[20]; + ::read(fd, buf, 20); ::close(fd); + int a = atoi(buf); - if (strncmp(actual, correct, 20) == 0) + if (a == getpid()) ::unlink(g_conf.pid_file); + else + dout(0) << "strange, pid file " << g_conf.pid_file + << " has " << a << ", not expected " << getpid() + << dendl; } }