mirror of
				https://git.haproxy.org/git/haproxy.git/
				synced 2025-11-04 02:21:03 +01:00 
			
		
		
		
	A problem was reported recently by some users of programs compiled with Go 1.5 which by default blocks all signals before executing processes, resulting in haproxy not receiving SIGUSR1 or even SIGTERM. This program mimmicks this behaviour to make it easier to run tests. It also displays the current signal mask. A simple test consists in running it through itself.
		
			
				
	
	
		
			17 lines
		
	
	
		
			376 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
		
			376 B
		
	
	
	
		
			C
		
	
	
	
	
	
#include <stdio.h>
 | 
						|
#include <signal.h>
 | 
						|
#include <unistd.h>
 | 
						|
 | 
						|
int main(int argc, char **argv)
 | 
						|
{
 | 
						|
	sigset_t new_sig, old_sig;
 | 
						|
 | 
						|
	sigfillset(&new_sig);
 | 
						|
	sigprocmask(SIG_SETMASK, &new_sig, &old_sig);
 | 
						|
	printf("old_sig: %16Lx\n", *(unsigned long long*)&old_sig);
 | 
						|
	printf("new_sig: %16Lx\n", *(unsigned long long*)&new_sig);
 | 
						|
	
 | 
						|
	argc--; argv++;
 | 
						|
	return argc ? execvp(*argv, argv) : 0;
 | 
						|
}
 |