두 개의 명령을 실행하고 하나의 명령이 완료되면 두 명령을 모두 종료하도록 구성할 수 있는 유틸리티

두 개의 명령을 실행하고 하나의 명령이 완료되면 두 명령을 모두 종료하도록 구성할 수 있는 유틸리티

serve ./public서버를 실행 하고 일부 테스트를 실행 ./run-chrome-tests.sh한 다음 테스트가 완료되면 종료할 수 있는 범용 유틸리티(Ubuntu, 아마도 OSX)가 있습니까 serve ./public?

이는 bash에서 수행할 수 있지만 가능하다면 코드를 작성하는 것보다 구성을 생성하는 것이 좋습니다.

답변1

내가 아는 한 그러한 유틸리티는 없지만 쉘 스크립트에서 쉽게 구현됩니다.

설명하는 작업을 수행하는 짧은 쉘 스크립트:

#!/bin/sh

serve ./public & serve_pid=$!
./run-chrome-tests.sh

kill "$serve_pid"

sleep 3테스트 스크립트를 실행하기 전에 백그라운드가 제대로 초기화되도록 하려면 백그라운드가 시작된 후 호출(또는 유사한)을 삽입 할 수 있습니다 .serve

$!가장 최근에 시작된 백그라운드 작업( 프로세스) serve의 PID 가 됩니다. run-chrome-tests.sh위 스크립트는 스크립트가 완료 되면 serve신호 보내기를 사용하여 프로세스를 명시적으로 종료 합니다 kill.

관련 정보