문제

Linux/NPTL, 스레드는 일종의 프로세스로 생성됩니다.

내 프로세스 중 일부는 이상한 cmdline이 있음을 알 수 있습니다.

cat /proc/5590/cmdline 
hald-addon-storage: polling /dev/scd0 (every 2 sec)

내 프로세스의 각 스레드에 대해 어떻게 그렇게 할 수 있는지 아이디어가 있습니까? 디버깅에 매우 도움이 될 것입니다.

/지금은 HAL 소스에서 조사하고 있습니다

감사해요

도움이 되었습니까?

해결책

휴대용 방식 으로이 작업을 수행하려면 여러 개의 UNIX 변형에 걸쳐 작동하는 것이 거의 없습니다.

당신이해야 할 일은 발신자 프로세스가 argv [0] 프로세스 출력에서보고 싶은 이름과 실제 실행 파일을 가리키는 파일 이름을 가리키는 인수.

다음을 사용하여 쉘 에서이 동작을 시도 할 수 있습니다.

exec -a "This is my cute name" bash

현재의 배쉬 프로세스를 명명 된 것으로 대체합니다. "This is my cute name".

C 에서이 작업을 수행하려면 소스 코드를 볼 수 있습니다. sendmail 또는 광범위하게 포팅 된 다른 소프트웨어의 소프트웨어를 제공하고이를 지원하기 위해 운영 체제에 필요한 모든 변형을 찾습니다.

일부 운영 체제에는 다음이 있습니다 setproctitle(3) API, 일부 다른 사람들은 당신이의 내용을 무시할 수 있습니다. argv [0] 그리고 그 결과를 보여줍니다.

다른 팁

argv 쓰기 가능한 문자열을 가리 킵니다. 그들에게 물건을 쓰십시오.

#include <string.h>
#include <unistd.h>

int
main(int argc, char** argv)
{
    strcpy(argv[0], "Hello, world!");
    sleep(10);
    return 0;
}

bah .. 코드는 그다지 좋지 않습니다. 속임수는 환경을 재사용하는 것입니다 (여기서 Argv_buffer) 포인터 :

memset (argv_buffer[0] + len, 0, argv_size - len);
argv_buffer[1] = NULL;

더 나은 아이디어가 있습니까?

다른 스레드에서 작동합니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top