나는 Oracle Linux를 사용 중입니다. 다음을 수행하는 쉘 스크립트가 있습니다.리눅스에 열려있는 모든 그놈 터미널의 목록 또는 이름
#some stuff happening here
gnome-terminal --title='my application' -x /path/my_application -param val
#some more stuff
이제 스크립트가 여러 번 실행될 가능성이 있습니다. 그러나 아직 실행 중이 아니면 my_application
만 시작하면됩니다. 그 다음 코드를 찾았습니다 :
ps cax | grep my_application > /dev/null
if [ $? -eq 0 ]; then
echo "My application already running."
else
gnome-terminal --title='my application' -x /path/my_application -param val
fi
이 작동합니다. 여기 내가 문제가있는 곳이야. 두 번째 쉘 스크립트가 있습니다. 또한 my_application
이지만 다른 매개 변수로 실행됩니다. 두 스크립트가 함께 실행될 수도 있습니다. 이 경우 다른 매개 변수가 있기 때문에 실행중인 my_application
의 두 인스턴스가 있어야합니다. 내 아이디어는 각각의 그놈 터미널에 다른 제목을주고 그 타이틀이있는 그놈 터미널이 이미 존재하는지 확인한 후에 my_application
을 시작하는 것입니다.
그렇다고 완전히 잘못 될 수도 있으므로 제안을 환영합니다.
요약하면 두 가지 스크립트가 모두 동일한 응용 프로그램을 시작하지만 매개 변수가 다릅니다. 두 스크립트는 함께 실행될 수도 있고 여러 번 실행될 수도 있습니다. 주어진 스크립트가 응용 프로그램을 시작한 경우 해당 스크립트가 다시 실행될 때 응용 프로그램이 다시 시작되지 않아야합니다 (응용 프로그램이 아직 실행중인 경우). 그러나 응용 프로그램을 시작하는 한 스크립트가 다른 응용 프로그램을 시작하지 못하게해서는 안됩니다.
나는 무리에 대해 알고하지 않았다, 그 주셔서 감사합니다 그래서. 그러나이 특정 솔루션은 작동하지 않습니다. 대신 gnome-terminal --title = 'my application'-x flock -n/var/lock/mylock1/path/my_application -param val과 같은 형태 여야합니다. – PhilBel