ALT Linux Bugzilla
– Attachment 5378 Details for
Bug 27075
self-restart by signal
New bug
|
Search
|
[?]
|
Help
Register
|
Log In
[x]
|
Forgot Password
Login:
[x]
|
EN
|
RU
[patch]
sigusr-self-restart
sigusr-restart.patch (text/plain), 1.34 KB, created by
Nick S. Grechukh
on 2012-03-13 19:07:12 MSK
(
hide
)
Description:
sigusr-self-restart
Filename:
MIME Type:
Creator:
Nick S. Grechukh
Created:
2012-03-13 19:07:12 MSK
Size:
1.34 KB
patch
obsolete
>diff --git a/twofing/twofingemu.c b/twofing/twofingemu.c >index 124b42b..99d777e 100644 >--- a/twofing/twofingemu.c >+++ b/twofing/twofingemu.c >@@ -33,7 +33,8 @@ > #include <sys/stat.h> > #include <sys/select.h> > #include <time.h> >- >+#include <signal.h> >+#include <unistd.h> > #define EXIT_SUCCESS 0 > #define EXIT_FAILURE 1 > >@@ -87,6 +88,32 @@ static void daemonize(void) { > r = r; > } > >+char **my_argv; >+ >+void signal_handler(int s) { >+ if (s == SIGUSR1) { >+ /* restarting */ >+ char buf[250]; >+ int i = readlink("/proc/self/exe", buf, sizeof(buf)); >+ if (i <= 0) return; >+ >+ buf[i] = 0; >+ int maxfd = sysconf(_SC_OPEN_MAX); >+ for(i = 3; i<maxfd; i++) close(i); >+ if(debugMode) printf("Running %s\n", buf); >+ execv(buf, my_argv); >+ } >+} >+ >+void set_signal_handler(){ >+ struct sigaction sa; >+ sigset_t newset; >+ sigemptyset(&newset); >+ sigprocmask(SIG_BLOCK, &newset, 0); >+ sa.sa_handler = signal_handler; >+ sigaction(SIGUSR1, &sa, 0); >+} >+ > /* Finger information */ > FingerInfo fingerInfos[2] = { { .rawX=0, .rawY=0, .rawZ=0, .id = -1, .slotUsed = 0, .setThisTime = 0 }, { .rawX=0, .rawY=0, .rawZ=0, > .id = -1, .slotUsed = 0, .setThisTime = 0 } }; >@@ -791,6 +818,9 @@ int main(int argc, char **argv) { > int doWait = 0; > int clickMode = 2; > >+ my_argv = argv; >+ set_signal_handler(); >+ > int i; > for (i = 1; i < argc; i++) { > if (strcmp(argv[i], "--debug") == 0) {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 27075
: 5378