Merge pull request #416 from yashi/exit-status-when-signaled
Exit status when signaledpull/419/head
commit
c8fef7d60d
10
canbusload.c
10
canbusload.c
|
|
@ -82,6 +82,8 @@ static struct {
|
||||||
unsigned int recv_bits_dbitrate;
|
unsigned int recv_bits_dbitrate;
|
||||||
} stat[MAXSOCK+1];
|
} stat[MAXSOCK+1];
|
||||||
|
|
||||||
|
static volatile int running = 1;
|
||||||
|
static volatile sig_atomic_t signal_num;
|
||||||
static int max_devname_len; /* to prevent frazzled device name output */
|
static int max_devname_len; /* to prevent frazzled device name output */
|
||||||
static int max_bitrate_len;
|
static int max_bitrate_len;
|
||||||
static int currmax;
|
static int currmax;
|
||||||
|
|
@ -124,7 +126,8 @@ void print_usage(char *prg)
|
||||||
|
|
||||||
void sigterm(int signo)
|
void sigterm(int signo)
|
||||||
{
|
{
|
||||||
exit(0);
|
running = 0;
|
||||||
|
signal_num = signo;
|
||||||
}
|
}
|
||||||
|
|
||||||
void printstats(int signo)
|
void printstats(int signo)
|
||||||
|
|
@ -382,7 +385,7 @@ int main(int argc, char **argv)
|
||||||
if (redraw)
|
if (redraw)
|
||||||
printf("%s", CLR_SCREEN);
|
printf("%s", CLR_SCREEN);
|
||||||
|
|
||||||
while (1) {
|
while (running) {
|
||||||
|
|
||||||
FD_ZERO(&rdfs);
|
FD_ZERO(&rdfs);
|
||||||
for (i=0; i<currmax; i++)
|
for (i=0; i<currmax; i++)
|
||||||
|
|
@ -425,5 +428,8 @@ int main(int argc, char **argv)
|
||||||
for (i=0; i<currmax; i++)
|
for (i=0; i<currmax; i++)
|
||||||
close(s[i]);
|
close(s[i]);
|
||||||
|
|
||||||
|
if (signal_num)
|
||||||
|
return 128 + signal_num;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -118,6 +118,7 @@ static const char extra_m_info[4][4] = { "- -", "B -", "- E", "B E" };
|
||||||
extern int optind, opterr, optopt;
|
extern int optind, opterr, optopt;
|
||||||
|
|
||||||
static volatile int running = 1;
|
static volatile int running = 1;
|
||||||
|
static volatile sig_atomic_t signal_num;
|
||||||
|
|
||||||
static void print_usage(void)
|
static void print_usage(void)
|
||||||
{
|
{
|
||||||
|
|
@ -169,6 +170,7 @@ static void print_usage(void)
|
||||||
static void sigterm(int signo)
|
static void sigterm(int signo)
|
||||||
{
|
{
|
||||||
running = 0;
|
running = 0;
|
||||||
|
signal_num = signo;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int idx2dindex(int ifidx, int socket)
|
static int idx2dindex(int ifidx, int socket)
|
||||||
|
|
@ -861,5 +863,8 @@ int main(int argc, char **argv)
|
||||||
if (log)
|
if (log)
|
||||||
fclose(logfile);
|
fclose(logfile);
|
||||||
|
|
||||||
|
if (signal_num)
|
||||||
|
return 128 + signal_num;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -584,10 +584,8 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
close(sockfd);
|
close(sockfd);
|
||||||
|
|
||||||
if (exit_sig) {
|
if (exit_sig)
|
||||||
signal(exit_sig, SIG_DFL);
|
return 128 + exit_sig;
|
||||||
kill(getpid(), exit_sig);
|
|
||||||
}
|
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
5
cangen.c
5
cangen.c
|
|
@ -91,6 +91,7 @@
|
||||||
extern int optind, opterr, optopt;
|
extern int optind, opterr, optopt;
|
||||||
|
|
||||||
static volatile int running = 1;
|
static volatile int running = 1;
|
||||||
|
static volatile sig_atomic_t signal_num;
|
||||||
static unsigned long long enobufs_count;
|
static unsigned long long enobufs_count;
|
||||||
static bool ignore_enobufs;
|
static bool ignore_enobufs;
|
||||||
static bool use_so_txtime;
|
static bool use_so_txtime;
|
||||||
|
|
@ -220,6 +221,7 @@ static void print_usage(char *prg)
|
||||||
static void sigterm(int signo)
|
static void sigterm(int signo)
|
||||||
{
|
{
|
||||||
running = 0;
|
running = 0;
|
||||||
|
signal_num = signo;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int setsockopt_txtime(int fd)
|
static int setsockopt_txtime(int fd)
|
||||||
|
|
@ -887,5 +889,8 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
close(s);
|
close(s);
|
||||||
|
|
||||||
|
if (signal_num)
|
||||||
|
return 128 + signal_num;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,7 @@ static int max_devname_len;
|
||||||
extern int optind, opterr, optopt;
|
extern int optind, opterr, optopt;
|
||||||
|
|
||||||
static volatile int running = 1;
|
static volatile int running = 1;
|
||||||
|
static volatile sig_atomic_t signal_num;
|
||||||
|
|
||||||
void print_usage(char *prg)
|
void print_usage(char *prg)
|
||||||
{
|
{
|
||||||
|
|
@ -164,7 +165,8 @@ void childdied(int i)
|
||||||
*/
|
*/
|
||||||
void shutdown_gra(int i)
|
void shutdown_gra(int i)
|
||||||
{
|
{
|
||||||
exit(0);
|
running = 0;
|
||||||
|
signal_num = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -433,5 +435,9 @@ int main(int argc, char **argv)
|
||||||
close(s[i]);
|
close(s[i]);
|
||||||
|
|
||||||
close(accsocket);
|
close(accsocket);
|
||||||
|
|
||||||
|
if (signal_num)
|
||||||
|
return 128 + signal_num;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ extern int optind, opterr, optopt;
|
||||||
|
|
||||||
static int s = -1;
|
static int s = -1;
|
||||||
static bool running = true;
|
static bool running = true;
|
||||||
|
static volatile sig_atomic_t signal_num;
|
||||||
static bool infinite = true;
|
static bool infinite = true;
|
||||||
static unsigned int drop_until_quit;
|
static unsigned int drop_until_quit;
|
||||||
static unsigned int drop_count;
|
static unsigned int drop_count;
|
||||||
|
|
@ -73,6 +74,7 @@ static void print_usage(char *prg)
|
||||||
static void sig_handler(int signo)
|
static void sig_handler(int signo)
|
||||||
{
|
{
|
||||||
running = false;
|
running = false;
|
||||||
|
signal_num = signo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -367,5 +369,8 @@ int main(int argc, char **argv)
|
||||||
else
|
else
|
||||||
do_send();
|
do_send();
|
||||||
|
|
||||||
|
if (signal_num)
|
||||||
|
return 128 + signal_num;
|
||||||
|
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -124,6 +124,7 @@ extern int optind, opterr, optopt;
|
||||||
|
|
||||||
static int idx;
|
static int idx;
|
||||||
static int running = 1;
|
static int running = 1;
|
||||||
|
static volatile sig_atomic_t signal_num;
|
||||||
static int clearscreen = 1;
|
static int clearscreen = 1;
|
||||||
static int print_eff;
|
static int print_eff;
|
||||||
static int print_ascii = 1;
|
static int print_ascii = 1;
|
||||||
|
|
@ -243,6 +244,7 @@ void print_usage(char *prg)
|
||||||
void sigterm(int signo)
|
void sigterm(int signo)
|
||||||
{
|
{
|
||||||
running = 0;
|
running = 0;
|
||||||
|
signal_num = signo;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
|
|
@ -428,6 +430,10 @@ int main(int argc, char **argv)
|
||||||
printf("%s", CSR_SHOW); /* show cursor */
|
printf("%s", CSR_SHOW); /* show cursor */
|
||||||
|
|
||||||
close(s);
|
close(s);
|
||||||
|
|
||||||
|
if (signal_num)
|
||||||
|
return 128 + signal_num;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -79,6 +79,7 @@
|
||||||
#define BUF_LEN (MAX_PDU_LENGTH + 1)
|
#define BUF_LEN (MAX_PDU_LENGTH + 1)
|
||||||
|
|
||||||
static volatile int running = 1;
|
static volatile int running = 1;
|
||||||
|
static volatile sig_atomic_t signal_num;
|
||||||
|
|
||||||
static void fake_syslog(int priority, const char *format, ...)
|
static void fake_syslog(int priority, const char *format, ...)
|
||||||
{
|
{
|
||||||
|
|
@ -130,6 +131,7 @@ void print_usage(char *prg)
|
||||||
void sigterm(int signo)
|
void sigterm(int signo)
|
||||||
{
|
{
|
||||||
running = 0;
|
running = 0;
|
||||||
|
signal_num = signo;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
|
|
@ -403,5 +405,9 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
close(s);
|
close(s);
|
||||||
close(t);
|
close(t);
|
||||||
|
|
||||||
|
if (signal_num)
|
||||||
|
return 128 + signal_num;
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
11
j1939acd.c
11
j1939acd.c
|
|
@ -110,7 +110,7 @@ static struct {
|
||||||
uint64_t name;
|
uint64_t name;
|
||||||
uint8_t current_sa;
|
uint8_t current_sa;
|
||||||
uint8_t last_sa;
|
uint8_t last_sa;
|
||||||
int sig_term;
|
volatile sig_atomic_t signal_num;
|
||||||
int sig_alrm;
|
int sig_alrm;
|
||||||
int sig_usr1;
|
int sig_usr1;
|
||||||
int state;
|
int state;
|
||||||
|
|
@ -337,7 +337,7 @@ static void sighandler(int sig, siginfo_t *info, void *vp)
|
||||||
switch (sig) {
|
switch (sig) {
|
||||||
case SIGINT:
|
case SIGINT:
|
||||||
case SIGTERM:
|
case SIGTERM:
|
||||||
s.sig_term = 1;
|
s.signal_num = sig;
|
||||||
break;
|
break;
|
||||||
case SIGALRM:
|
case SIGALRM:
|
||||||
s.sig_alrm = 1;
|
s.sig_alrm = 1;
|
||||||
|
|
@ -531,7 +531,7 @@ int main(int argc, char *argv[])
|
||||||
install_signal(SIGUSR1);
|
install_signal(SIGUSR1);
|
||||||
install_signal(SIGUSR2);
|
install_signal(SIGUSR2);
|
||||||
|
|
||||||
while (!s.sig_term) {
|
while (!s.signal_num) {
|
||||||
if (s.sig_usr1) {
|
if (s.sig_usr1) {
|
||||||
s.sig_usr1 = 0;
|
s.sig_usr1 = 0;
|
||||||
dump_status();
|
dump_status();
|
||||||
|
|
@ -648,6 +648,9 @@ done:
|
||||||
fprintf(stderr, "- shutdown\n");
|
fprintf(stderr, "- shutdown\n");
|
||||||
claim_address(sock, s.name, J1939_IDLE_ADDR);
|
claim_address(sock, s.name, J1939_IDLE_ADDR);
|
||||||
save_cache();
|
save_cache();
|
||||||
|
|
||||||
|
if (s.signal_num)
|
||||||
|
return 128 + s.signal_num;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
12
slcand.c
12
slcand.c
|
|
@ -93,7 +93,7 @@ void print_usage(char *prg)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int slcand_running;
|
static int slcand_running;
|
||||||
static int exit_code;
|
static volatile sig_atomic_t exit_code;
|
||||||
static char ttypath[TTYPATH_LENGTH];
|
static char ttypath[TTYPATH_LENGTH];
|
||||||
|
|
||||||
static void child_handler(int signum)
|
static void child_handler(int signum)
|
||||||
|
|
@ -104,16 +104,12 @@ static void child_handler(int signum)
|
||||||
/* exit parent */
|
/* exit parent */
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
break;
|
break;
|
||||||
|
case SIGINT:
|
||||||
|
case SIGTERM:
|
||||||
case SIGALRM:
|
case SIGALRM:
|
||||||
case SIGCHLD:
|
case SIGCHLD:
|
||||||
syslogger(LOG_NOTICE, "received signal %i on %s", signum, ttypath);
|
syslogger(LOG_NOTICE, "received signal %i on %s", signum, ttypath);
|
||||||
exit_code = EXIT_FAILURE;
|
exit_code = 128 + signum;
|
||||||
slcand_running = 0;
|
|
||||||
break;
|
|
||||||
case SIGINT:
|
|
||||||
case SIGTERM:
|
|
||||||
syslogger(LOG_NOTICE, "received signal %i on %s", signum, ttypath);
|
|
||||||
exit_code = EXIT_SUCCESS;
|
|
||||||
slcand_running = 0;
|
slcand_running = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue