diff options
author | Eric Andersen <andersen@codepoet.org> | 2004-10-08 08:17:39 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2004-10-08 08:17:39 +0000 |
commit | 2271809d75a2df26a5afbdab1aaf0ec3623d2ce0 (patch) | |
tree | 1eb90c4f50fe77b96351bf4d1fc9fb0e3a79df3a | |
parent | c00e11df856d280d7cff64aed78385e5f8be26bd (diff) | |
download | busybox-w32-2271809d75a2df26a5afbdab1aaf0ec3623d2ce0.tar.gz busybox-w32-2271809d75a2df26a5afbdab1aaf0ec3623d2ce0.tar.bz2 busybox-w32-2271809d75a2df26a5afbdab1aaf0ec3623d2ce0.zip |
Hiroshi Ito writes:
"kill -HUP 1" reloads inittab, and when I append one line to inittab
and send HUP signal two times, It will starts 2 process.
patch against current CVS is attached.
-rw-r--r-- | init/init.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/init/init.c b/init/init.c index 2278e521f..8a63ff350 100644 --- a/init/init.c +++ b/init/init.c | |||
@@ -846,7 +846,7 @@ static void cont_handler(int sig) | |||
846 | 846 | ||
847 | static void new_init_action(int action, const char *command, const char *cons) | 847 | static void new_init_action(int action, const char *command, const char *cons) |
848 | { | 848 | { |
849 | struct init_action *new_action, *a; | 849 | struct init_action *new_action, *a, *last; |
850 | 850 | ||
851 | if (*cons == '\0') | 851 | if (*cons == '\0') |
852 | cons = console; | 852 | cons = console; |
@@ -864,16 +864,17 @@ static void new_init_action(int action, const char *command, const char *cons) | |||
864 | } | 864 | } |
865 | 865 | ||
866 | /* Append to the end of the list */ | 866 | /* Append to the end of the list */ |
867 | for (a = init_action_list; a && a->next; a = a->next) { | 867 | for (a = last = init_action_list; a; a = a->next) { |
868 | /* don't enter action if it's already in the list */ | 868 | /* don't enter action if it's already in the list */ |
869 | if ((strcmp(a->command, command) == 0) && | 869 | if ((strcmp(a->command, command) == 0) && |
870 | (strcmp(a->terminal, cons) ==0)) { | 870 | (strcmp(a->terminal, cons) ==0)) { |
871 | free(new_action); | 871 | free(new_action); |
872 | return; | 872 | return; |
873 | } | 873 | } |
874 | last = a; | ||
874 | } | 875 | } |
875 | if (a) { | 876 | if (last) { |
876 | a->next = new_action; | 877 | last->next = new_action; |
877 | } else { | 878 | } else { |
878 | init_action_list = new_action; | 879 | init_action_list = new_action; |
879 | } | 880 | } |