프로세스가 백그라운드로 실행되었는지 어떻게 알 수 있나요?

StackOverflow https://stackoverflow.com/questions/1002008

  •  05-07-2019
  •  | 
  •  

문제

파일을 scp할 때 ^Z를 사용하여 파일을 중지하고 백그라운드에 넣을 수 있습니다.백그라운드에 있으면 진행률 인쇄가 중지되지만 복사는 계속됩니다.다시 전경에 표시하면 인쇄가 다시 시작됩니다.어떻게 알 수 있나요?시그투?표준 ptty에서 그런 일이 발생합니까?

도움이 되었습니까?

해결책 2

나와 내 동료는 실제로 소스를 살펴보고 답을 찾았습니다.

scp가 출력을 인쇄하려고 할 때마다 stdout에서 tcgetpgrp를 실행합니다.그러면 터미널의 제어 프로세스 그룹이 반환됩니다(터미널이라고 가정).터미널을 제어하는 ​​프로세스 그룹이 scp의 프로세스 그룹과 동일한 경우에만 인쇄됩니다.신호가 필요하지 않은 것으로 나타났습니다!(진행 라인의 크기를 계산하기 위해 SIGWINCH를 처리하지만).

다른 팁

예, 당신은 그것을 얻었습니다. 이 과정은 Sigttou (그리고 아마도 Sigttin이 수행하는 일에 따라 Sigttin)를 덫에 걸리거나 무시한 다음 해당 신호를받을 때 적절하게 행동합니다. Linux는 실제로 이러한 신호를 정상적인 의사 단기에 보냅니다.

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