pkill의 맥락에서 세션 ID는 무엇을 의미합니까?

pkill의 맥락에서 세션 ID는 무엇을 의미합니까?

명령 과 관련하여 pkill프로세스를 종료하는 것이 가능하다는 것을 알고 있습니다.특정 장면tty[1-6]- 합격 및 . 을 기준으로 pts/[0-N]테스트한 결과 예상대로 작동합니다. 지금까지는 모든 것이 괜찮습니다.

그러나 이제 이 답변과 솔루션에 따르면 다음과 같습니다.

다음과 같이 표시됩니다(추출됨).

pkill 및 killall도 kill 시스템 호출(실제로는 시스템 호출을 직접 호출하는 libc 라이브러리)에 대한 래퍼이지만 PID는 프로세스 이름, 프로세스 소유자 및 기타 정보를 기반으로 결정할 수 있습니다.세션 ID, 등.

관찰하다세션 ID부분. 두 가지를 모두 확인했는데 man이 기능은 pkill다음 중 하나에만 존재합니다.

그것들은 다음과 같습니다:

-s sid,...
Only match processes whose process session ID is listed. 
Session ID 0 is translated into pgrep's or pkill's own session ID.

-s, --session sid,...
Only match processes whose process session ID is listed. 
Session ID 0 is translated into pgrep's or pkill's own session ID.

보시다시피 내용은 동일하며 옵션/매개변수 이름이 약간 다릅니다.

내가 사용하는 경우:

  • 직접 콘솔을 사용하여 무언가를 죽일 pkill수 있음tty[1-6]
  • 원격으로 연결되어 무언가를 죽이는 데 ssh사용할 수 있습니다 .pkillpts/[0-N]

이 글을 게시한 이유:

질문

  • 무엇인가요세션 ID문맥 상 의미가 있나요 pkill?

추가 질문

  • 어때요?세션 ID만들다?
  • 목록을 알고/검색하는 방법세션 ID사용 pkill?

답변1

세션 ID는 프로세스 세션의 식별자입니다. 세션은 프로세스 그룹보다 높은 수준의 쉘 작업 제어와 관련된 개념입니다. 특정 세션의 모든 프로세스는 동일한 제어 터미널을 공유합니다. 그래픽이 아닌 환경에서 세션은 로그인 세션으로 생각할 수 있습니다(적어도 이는 원래 아이디어의 일부였습니다. 시스템 기반 환경에서 로그인 세션을 추적하는 시스템 세션과 혼동하지 마십시오).

세션은 다음을 호출하여 생성됩니다.setsid;당신은 또한 볼 수 있습니다그들의 설명은man credentials. 이러한 링크는 Linux 관련 문서를 가리키지만 Linux에만 해당되는 것은 아닙니다.POSIX 사양setsid.

ps세션 ID가 표시될 수 있습니다:

ps -eo pid,sess,args

관련 정보