저는 프로세스를 여러 번 시작할 수 있는 매우 간단한 bash 스크립트를 찾고 있습니다. 나에게 가장 중요한 것은 프로세스가 종료된 후 모든 것이 자동으로 정리된다는 것입니다.
예상 사용량:
bash multiplerun.sh 5 executable.sh parameters_to_executable
제가 직접 작성할 수도 있겠지만 시간이 오래 걸리기 때문에 저는 *ix 시스템을 잘 사용하지 못하기 때문에 전문가에게 물어보기로 했습니다.
편집: 아, 병렬로 실행하고 싶다는 것을 추가하는 것을 잊었습니다. 하나씩 실행하는 것은 매우 간단합니다.
답변1
프로그램을 병렬로 시작하는 방법은 다음과 같습니다.
#!/bin/bash
count=$1
command=$2
shift 2
for ((i=0;i<count;i++)); do
$command "$@" &
done
wait
echo done
지시를 기다리면 좀비가 나타나지 않게 됩니다. 프로그램에 tty가 필요하지 않은 경우 루프를 다음으로 바꿀 수 있습니다.
for ((i=0;i<count;i++)); do
nohup $command "$@" </dev/null >/dev/null 2>&1 &
done
이런 방식으로 프로세스가 셸에서 분리됩니다.
답변2
GNU 병렬이 있는 경우http://www.gnu.org/software/parallel/설치 후 다음을 수행할 수 있습니다.
seq 5 | parallel -N0 executable.sh parameters_to_executable
다음과 같이 간단하게 GNU Parallel을 설치할 수 있습니다.
wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem
자세히 알아보려면 GNU Parallel 소개 비디오를 시청하세요. https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1