server: fix server not exit issue on asus router
This commit is contained in:
@@ -348,7 +348,13 @@ case "$1" in
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d "/proc/$pid" ]; then
|
if [ ! -d "/proc/$pid" ]; then
|
||||||
return 0;
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
stat="$(cat /proc/${pid}/stat | awk '{print $3}' 2>/dev/null)"
|
||||||
|
if [ "$stat" = "Z" ]; then
|
||||||
|
$SLEEP $SLEEPTIME
|
||||||
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$SLEEP $SLEEPTIME 2>/dev/null
|
$SLEEP $SLEEPTIME 2>/dev/null
|
||||||
|
|||||||
@@ -469,10 +469,15 @@ int main(int argc, char *argv[])
|
|||||||
char config_file[MAX_LINE_LEN];
|
char config_file[MAX_LINE_LEN];
|
||||||
char pid_file[MAX_LINE_LEN];
|
char pid_file[MAX_LINE_LEN];
|
||||||
int signal_ignore = 0;
|
int signal_ignore = 0;
|
||||||
|
sigset_t empty_sigblock;
|
||||||
|
|
||||||
safe_strncpy(config_file, SMARTDNS_CONF_FILE, MAX_LINE_LEN);
|
safe_strncpy(config_file, SMARTDNS_CONF_FILE, MAX_LINE_LEN);
|
||||||
safe_strncpy(pid_file, SMARTDNS_PID_FILE, MAX_LINE_LEN);
|
safe_strncpy(pid_file, SMARTDNS_PID_FILE, MAX_LINE_LEN);
|
||||||
|
|
||||||
|
/* patch for Asus router: unblock all signal*/
|
||||||
|
sigemptyset(&empty_sigblock);
|
||||||
|
sigprocmask(SIG_SETMASK, &empty_sigblock, NULL);
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "fhc:p:Svx")) != -1) {
|
while ((opt = getopt(argc, argv, "fhc:p:Svx")) != -1) {
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
case 'f':
|
case 'f':
|
||||||
|
|||||||
Reference in New Issue
Block a user