Я создаю следующую программу, которая должна «играть в пинг-понг» между родительским процессом и его дочерним процессом.
Еще во время работы над ним, во время компиляции, я заметил, что мой компьютер начинает работать все больше и больше, но я не думал, что это проблема.
В конце концов я обнаружил, что ломаю свой Linux, создавая множество различных процессов, которые замедляют работу ПК, а также создают много файлов временных файлов / журналов и приводят к тому, что на моем диске остается 200 МБ свободного места вместо 35 ГБ.
Как я могу исправить эти проблемы?
- Как я могу остановить мою программу от создания множества различных процессов?
- Как я могу очистить каталог журналов? Я пытался
sudo apt автоудаление
и Автоматическая очистка
и удалить все .gz
файлы в /вар/журнал
каталог.
Но это не помогло. На моем диске по-прежнему свободно 200 МБ и /вар/журнал
каталог почти 40 ГБ по какой-то причине.
Я не хочу удалять необходимые файлы, находящиеся в /вар/журнал
каталог, поэтому я не удаляю весь каталог.
Почему моя программа вообще создала так много временных файлов или файлов журналов?
Спасибо.
is_parent_turn = 1;
недействительным handle_siguser1 (int signum);
недействительным handle_siguser1 (int signum);
основной ()
{
/* создаем дочерний процесс */
pid_t pid = fork();
если (пид < 0)
выход(1);
сигнал (SIGUSR1, handle_siguser1);
сигнал (SIGUSR2, handle_siguser2);
/* возвращается только что созданному дочернему процессу. */
если (0 == pid)
{
пока (1)
{
/* приостановить дочерний процесс и позволить родителю начать работу */
спать (2);
kill(getppid(), SIGUSR2);
}
}
/* возвращается к родителю */
еще
{
пока (1)
{
kill(getpid(), SIGUSR1);
}
}
вернуть 0;
}
/********************************************************* *******************************/
недействительным handle_siguser1 (int signum)
{
если (is_parent_turn)
{
printf("\n\nPING\n\n");
is_parent_turn = 0;
}
еще
{
спать (2);
}
}
/********************************************************* *******************************/
недействительный handle_siguser2 (int signum)
{
если (!is_parent_turn)
{
printf("\n\nPONG\n\n");
is_parent_turn = 1;
}
еще
{
спать (2);
}
}