일정 시간이 지난 후 스크립트에서 명령 실행을 종료하는 방법은 무엇입니까? [복사]

일정 시간이 지난 후 스크립트에서 명령 실행을 종료하는 방법은 무엇입니까? [복사]

T 기간 동안 끝이 없는 명령(예: mp3 파일 반복)을 실행하고 싶습니다.

쉘 스크립트 my.sh에 명령을 넣었습니다.

#! /bin/bash
vlc /path/to/my.mp3 # will play the file in loop till I terminate it.

그런 다음 실행해 보려고 합니다.

my.sh & 
pid="$!" # need to get the pid of the vlc process.
sleep 2.5h
kill $pid 

스크립트에서 명령을 실행하는 프로세스가 아닌 쉘 스크립트를 실행하는 프로세스만 종료하는 것처럼 보입니다. 스크립트에서 명령을 실행하는 프로세스를 종료하는 방법은 무엇입니까?

감사해요.

답변1

주문하다timeout이 방법. 예를 들어:

timeout 10m vlc /path/to/my.mp3

10분 안에 죽이겠습니다. 보다매뉴얼 페이지추가 옵션에 대해 알아보세요(예: -k프로그램이 다시 실행되지 않도록 종료 신호 보내기).

답변2

좋다timeout

원본 게시물에 가까운 대체 솔루션:

내.sh:

#!/bin/bash
vlc /path/to/my.mp3 & # ADDED & <- will play the file in loop till I terminate it.
pid=$!
sleep 10
kill $pid

chmod:

chmod +x my.sh

달리다:

./my.sh &

관련 정보