2017-12-15 19 views
3

내가 리눅스 시스템에 Torjan 발견했습니다, 그것은재부팅하지 않고 "빠른 fork()"프로세스를 종료하는 방법은 무엇입니까?

while(1) 
{ 
    count += 1; 
    pid_t pid = fork(); 
    if (pid < 0) 
    { 
     printf("there is something wrong\n"); 
    } 
    if (pid > 0) // father process 
    { 
     /* every 0x1000 times fork run the evil code once */ 
     if (count & 0xfff) 
     { 
      exit(0); 
     } 

     /* stop the program if the job isn't done in XXs */ 
     alarm(XX); 
     // evil code 
    } 
} 

정말 효과적하고 ps aux를 통해 그것을 찾을 수 아래의 코드처럼, "빠른 포크"라는 방법을 사용하여, 어쨌든이 프로세스를 찾고 재부팅하지 않고 죽일 수 있습니까? 오후 8시 30 분 P.S. 이 코드는 일반 사용자 (루트가 아닌)로 실행되며 루트 액세스 권한도 없습니다. 프로세스 이름은 각 포크 후 변경되지 않으면

+1

사용자가 동시에 실행할 수있는 프로세스 수를 제한하기 위해 RLIMIT_NPROC 리소스를 사용하여 setrlimit을하는 것이 더 좋습니다. –

답변

4

, 당신은이

$ while true; do killall -9 process_name; done 

이 (그러나 프로세스 이름을 얻는 방법을 기원 파일이 된 경우처럼, "빠른 죽이기"라는 방법을 사용할 수 있습니다 주석을 추가하는 데 충분한 평판이 없습니다. 죄송합니다. 코멘트를 추가할만한 충분한 평판이 없습니다.