Предположим, что после сна мы уверены, что родитель умер. Таким образом, дочерний процесс становится сиротским процессом. Итак, что произойдет, дочерний процесс отправит SIGUSR1 своему родителю, который является процессом init.
Код:
int main(int argc, char const *argv[])
{
if(fork() == 0){
sleep(10);
kill(getppid(),SIGUSR1);
}
return 0;
}
После запуска этого кода система вышла из системы. Но когда я сделал это в терминале по
sudo kill -10 1
, ничего не произошло. В чем разница между ними? И почему система позволяет мне делать это плохо?