다양한 매개변수를 사용하여 여러 셸 인스턴스를 동시에 실행

다양한 매개변수를 사용하여 여러 셸 인스턴스를 동시에 실행

다양한 매개변수 조합으로 실행하려는 Python 스크립트가 있다고 가정해 보겠습니다(저는 MacBook Pro를 사용하고 있습니다). 예를 들어 쉘 스크립트를 사용하여 이 작업을 수행하는 경우 run.sh동시에 여러 번(매번 다른 매개변수 조합을 사용하여) 실행하는 것이 합리적입니까? run.sh즉, 메모리에서 실행될 때 서로 다른 매개변수 조합이 서로 접촉합니까? 이것은 메모리 보호의 개념과 약간 비슷합니까?

답변1

Python 스크립트가 수행하는 작업에 따라 많은 것이 달라집니다 run.sh.

아주 간단한 예를 들어보겠습니다.

#!/bin/bash

s=$(( RANDOM%5 ))
echo Sleeping for $s > /tmp/foo
sleep $s
echo You entered $1 >> /tmp/foo
cat /tmp/foo

이제 내가 그렇게 하면

./run.sh 1 &
./run.sh 2 &
./run.sh 3 &

어떤 결과가 나올지 모르겠습니다. 이는 스크립트에 /tmp/foo여러 번 액세스할 수 없는 하나의 리소스( )만 있기 때문입니다. 한 스크립트가 다른 스크립트의 결과를 덮어쓰게 됩니다.

반대로, 정확하고 고유한 "임시" 리소스를 사용하도록 스크립트를 작성한 경우 여러 번 호출할 수 있습니다.

#!/bin/bash

tmpfile=$(mktemp)

s=$(( RANDOM%5 ))
echo Sleeping for $s > $tmpfile
sleep $s
echo You entered $1 >> $tmpfile
cat $tmpfile
rm $tmpfile

이제 원하는 만큼 여러 번 호출할 수 있으며 작동합니다.

음...물론 메모리와 CPU 제한도 고려합니다!

관련 정보