diff --git a/src/sbbs3/sbbscon.c b/src/sbbs3/sbbscon.c index cb9459e68df221d0325545bec000e766a28308b3..7b625dafb2edb238b410565bcc866cafa5c500f0 100644 --- a/src/sbbs3/sbbscon.c +++ b/src/sbbs3/sbbscon.c @@ -1238,7 +1238,17 @@ void recycle(void* cbdata) void cleanup(void) { #ifdef __unix__ - unlink(pid_fname); + FILE* pf; + if ((pf = fopen(pid_fname, "r")) != NULL) { + int fpid = -1; + if (fscanf(pf, "%d", &fpid) == 1) { + fclose(pf); + if (fpid == getpid()) + unlink(pid_fname); + } + else + fclose(pf); + } #endif }