bash에서 control-z로 프로세스를 일시 중지하면 잠재적으로 부정적인 결과는 무엇입니까?


11

bash를 사용하면로 프로세스를 일시 중지 할 수 있습니다 control-z. 그러나 프로세스가 일시 중지 된 상태에서 잘 작동하지 않는 위치를주의해야 할 일반적인 상황이나 지침이 있습니까?

내 특정 시나리오는 예상보다 오래 걸리는 tar 파일을 만드는 것입니다. 나는 그것을 배경으로하기 위해 일시 ​​중지하고 싶었지만하지 않기로 결정했습니다. 내 질문은 물론 tar에만 국한된 것은 아닙니다. 오히려 bash의 일시 중지 기능을 조금 더 잘 이해하고 프로세스가 일시 중지되는 데 좋지 않은 반응을 일으키는 것을 이해하고 싶습니다.

답변:


3

원자 적 사본에 의존하는 스토리지 작업 (pvmove, veritas vx) 그들이 통제 밖에서 붙어 있으면 좋지 않습니다. 작업이 일부 API를 시작하고 나머지는 커널 공간에서 수행하는지 여부에 따라 다르므로 안전합니다. 그것에서 일어나고있는 경우 그 쉘에서 * 프로세스 *, 다음 정말 화면으로 가서 손을 뗀 상태를 유지한다.

확실히 배경으로 멈추지 않는 것이 좋습니다. 위에서 언급 한 테이프 드라이브를 제외하고 dd와 같은 버퍼를 사용하는 명령이 더 나은 것 같습니다.

(다른 사람들의 혼란을 제거하면서 나에게 일어난 재부트, 수면 부족 및 많은 편집증을 얻었습니다. 분명히 : 다른 사람들의 단축키를 고치면 단축키를 사용하지 마십시오 ...)


6

프로세스에서 데이터를 쓰는 경우 비 랜덤 액세스 장치 및 버퍼의 타이밍 문제가 문제가 될 수 있습니다. 테이프 드라이브에 때때로 문제가있는 것을 보았습니다.


TCP-SYN이 재전송되지 않아 네트워크 / 방화벽 세션이 시간 초과되고 재시작되지 않을 수 있습니다.
— jippie

TCP 스택은 창이 가득 찼다는 ACK를 계속 전송합니다.
— 마젤란

활성 패킷 유지는 TCP 나 IP 프로토콜의 일부가 아니며 응용 프로그램의 일부입니다. 따라서 방화벽이나 원격 클라이언트 또는 서버가 패킷 대기 시간을 초과하여 소켓 / 연결을 끊을 수 있습니다.
— jippie

Keepalives에게 말하지 않는 것은 분명히 응용 프로그램 수준입니다. 전송 수준에서 TCP 슬라이딩 창의 ACK에 대해 이야기하고 있습니다.
— 마젤란

2

그리고 일반적인 시나리오 : Ctrl-Z를하고 잊어 버리고 로그 오프하고 프로세스를 잃어 버립니다! =)


0

실제로 질문에 대한 구체적인 대답은 아니지만를 사용하여 동시 작업을 실행할 수 screen있습니다. 따라서 다른 프로그램과 동시에 셸을 사용할 수 있습니다.


예, 화면은 항상 좋은 방법입니다. 그러나 당신의 이름에 어떻게 대답해야할지 모르겠습니다.
— 웨슬리

@toiletfreak 화면을 일시 중지하는 방법은 무엇입니까? 화면이 백그라운드에서 작업을 실행합니까? 그러나 화면을 분리해도 계속됩니다 ...
— Bernhard
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.