|
|
- /* dwm will keep pid's of processes from autostart array and kill them at quit */
- static pid_t *autostart_pids;
- static size_t autostart_len;
-
- /* execute command from autostart array */
- static void
- autostart_exec()
- {
- const char *const *p;
- size_t i = 0;
-
- /* count entries */
- for (p = autostart; *p; autostart_len++, p++)
- while (*++p);
-
- autostart_pids = malloc(autostart_len * sizeof(pid_t));
- for (p = autostart; *p; i++, p++) {
- if ((autostart_pids[i] = fork()) == 0) {
- setsid();
- execvp(*p, (char *const *)p);
- fprintf(stderr, "dwm: execvp %s\n", *p);
- perror(" failed");
- _exit(EXIT_FAILURE);
- }
- /* skip arguments */
- while (*++p);
- }
- }
|