셸에서 설정된 시간 동안 응용 프로그램을 실행하는 방법


12

경우 어떻게에서 할 수 있습니다 Terminal, 힘이 폐쇄되고, 그 과정의 로그를 울리는하기 전에 30 초 동안 실행하려면 응용 프로그램을 얻을?


@JacobVlijm 주로 의도 된 사용 영역이 CI 서비스이기 때문에 언어의 이식성 때문에 쉘 스크립트로 이상적으로 실행됩니다.
ir-g

1
@ ir-g timeout 명령을 사용할 수 있습니다 . 예 : 타임 아웃 30s 명령
mcantsin

답변:


19

timeout 명령 을 사용할 수 있습니다 .

timeout -k 10s 30s command

30 초 동안 명령을 실행하고 여전히 실행 중이면 10 초 후에 명령을 종료합니다. -자세한 옵션은 맨 페이지를 확인하십시오.


1
@ ir-g 천만에요. watch 명령 을 확인하고 싶을 수도 있는데, 명령 행에서 비슷하고 사용하기도 쉽습니다.
mcantsin

2
그 포인터에 감사드립니다 watch. 매우 흥미로운 명령으로 저를 놀라게했습니다. 편리하게 올 수있었습니다.
ir-g

3

두 가지 방법이 있지만 mcantsin제안한timeout 명령 이 더 좋습니다.

  1. PID가 저장되는 방식으로 백그라운드에서 명령을 실행하면 $!지정된 시간 후에 명령을 종료 할 수 있습니다.

    command &
    sleep 30 && kill $!
  2. 명령을 실행하고 사용 pkill하거나 killall죽일 수 있습니다. 주의 : 이것은 그 이름을 가진 하나의 명령 만 실행 중이라고 가정합니다 firefox. 예를 들어 사용 하고 있습니다.

    firefox &
    sleep 30 && pkill firefox

"그 프로세스의 로그"가 무슨 뜻인지 모르겠지만 프로세스의 표준 오류는 파일로 저장할 수 있습니다 command 2> logfile.txt.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.