내 프로젝트의 시작 스크립트와 정지 스크립트를 빌드하려고합니다. 서버뿐만 아니라 sass 자동 컴파일러를 실행하고 두 파일의 출력을 파일로 리디렉션해야합니다. 나는 이것을 위해 lite-server
과 sass --watch
을 사용하고 있습니다.리눅스에서 백그라운드 프로세스 죽이기
이러한 프로세스를 동시에 실행하려면 프로세스를 배경으로 사용하기 위해 &
을 사용하고 있습니다. 이것은 스크립트를 멈추게하는 문제를 야기하며, 평소처럼 Ctrl+C
을 사용하여 스크립트를 멈출 수는 없습니다. 프로세스 ID를 텍스트 파일에 저장함으로써이 문제를 극복 할 수있을 것이라고 생각했습니다. 나는 종류 보이는 텍스트 파일로 프로세스 ID를 작성
kill $(cat .pids.txt)
을 사용하고, 프로세스를 중지하려면 다음
# Start a sass watcher and a server running simultaneously. Store the PIDs in a
# text file so that the processes can be easily stopped.
(
lite-server &
echo $! > .pids.txt &
sass --watch sass:css --style=compressed &
echo $! >> .pids.txt &
) &> log.txt
cat .pids.txt
:
나는 다음 "시작"스크립트를 내놓았다 hackish. 내가하려는 일을 성취 할 수있는 더 좋은 방법이 있습니까?
PID를 텍스트 파일에 쓰지 않고 컴퓨터에서 한 번만 (하나의 인스턴스) 실행되도록 바인딩 된 경우 'killall'명령을 사용할 수 있습니다. 'killall -s KILL lite-server sass' (개별적으로 또는 결합 된 것) – VanagaS
좋습니다. 나는 그것이 최선의 관행이 될 것이라고 생각하지는 않았지만, 그것은 합리적입니다. –