Patch from Natanael Copa to make start-stop-daemon just use readlink and strcmp to check if a program is already running.
This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)
No binary (build failed)
—
(log yok)
| @@ -39,16 +39,17 @@ static inline void push(pid_t pid) | |
| static int pid_is_exec(pid_t pid, const char *name) | |
| { | |
| - | char buf[32]; |
| - | struct stat sb, exec_stat; |
| - | |
| - | if (name) |
| - | xstat(name, &exec_stat); |
| + | char buf[32], *execbuf; |
| + | int equal; |
| sprintf(buf, "/proc/%d/exe", pid); | |
| - | if (stat(buf, &sb) != 0) |
| - | return 0; |
| - | return (sb.st_dev == exec_stat.st_dev && sb.st_ino == exec_stat.st_ino); |
| + | execbuf = xstrdup(name); |
| + | readlink(buf, execbuf, strlen(name)+1); |
| + | |
| + | equal = ! strcmp(execbuf, name); |
| + | if (ENABLE_FEATURE_CLEAN_UP) |
| + | free(execbuf); |
| + | return equal; |
| } | |
| static int pid_is_user(int pid, int uid) | |