[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Управление заданиями - Пример

Эта  программа  создает  подпроцесс,  который  пишет  числа  на  экран
терминала.  Родительский   процесс  позволяет  порожденному  писать  в
течение  5   секунд,  останавливает   его  на   10  секунд,   а  затем
перезапускает, позволяя  ему исполняться в течение еще 10 секунд, пока
не пошл└т ему SIGTERM.

Программа, исполняемая порожденным процессом:
        main()
        {
                       int i = 0;
                       while(1) {
                       printf("%d\n", i++);
                       sleep(1);
                       }
        }

Файл: job_cont.c
                    УПРАВЛЕНИЕ ЗАДАНИЯМИ - ПРИМЕР

 1      #include <sys/types.h>
 2      #include <signal.h>
 3      #include <sys/procset.h>
 4
 5      main()
 6      {
 7           pid_t pid;
 8           if ((pid = fork()) == 0) {
 9               execl("./forever", "forever", 0);
10               fprintf("execl failed\n");
11               exit(1);
12           }
13           else {
14               sleep(5);
15               sigsend(P_PID, pid, SIGSTOP);
16               sleep(10);
17               sigsend(P_PID, pid, SIGCONT);
18               sleep(10);
19               sigsend(P_PID, pid, SIGTERM);
20               wait(0);
21           }
22      }
23