Nachdem mein Bash-Skript mit dem Selenium-Server fertig ist, beendet das Skript es folgendermaßen:
kill `ps -ef | grep selenium | awk '{ print $2 }'`
Während dies funktioniert und das Selenium-Skript beendet wird, wird auch versucht, den Prozess zu grep selenium
beenden. Wenn also die Prozessnummer wieder dem Befehl kill entspricht, ist der Prozess beendet und es wird eine Fehlermeldung generiert. (Mit anderen Worten: Es werden zwei Prozesse beendet, einer davon ist der echte Selenserver, der andere ist ein flüchtiger Prozess, der ein Nebeneffekt der Ausführung dieses Befehls ist.)
Gibt es einen anmutigeren Weg, um den Prozess zu beenden, der diesen unbeabsichtigten Nebeneffekt nicht hat?
(Nach einer Idee, die ich hatte: Dasselbe Skript startet Selen früher im Skript. Wenn es also eine Möglichkeit gäbe, die PID beim Starten von Selen zu erfassen, könnte ich sie einfach behalten und direkt töten, anstatt danach zu greifen Das Problem ist, dass ich nicht weiß, wie man diese PID erhält, wie man eine Variable verwendet, um sie zu behalten und wie man sie später im Skript referenziert.