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.