После того, как мой bash-скрипт сделан с сервером selenium, скрипт убивает его так:
kill `ps -ef | grep selenium | awk '{ print $2 }'`
Несмотря на то, что это работает и он уничтожает сценарий селена, он также пытается уничтожить процесс, grep selenium
поэтому к тому моменту, когда номер процесса возвращается к команде kill, процесс завершается, и в итоге он генерирует сообщение об ошибке. (Другими словами: это приводит к уничтожению двух процессов, один из которых - настоящий сервер селена, а другой - мимолетный процесс, который является побочным эффектом от выполнения этой команды.)
Есть ли более изящный способ убить процесс, у которого нет этого непреднамеренного побочного эффекта?
(У меня есть одна идея: этот же сценарий запускает селен ранее в сценарии, так что, возможно, если бы был способ, которым я мог бы захватить PID, когда я запускаю селен, я мог бы просто сохранить это и убить его напрямую, вместо того, чтобы искать для ID процесса. Проблема в том, что я не знаю, как получить этот PID, как использовать переменную, чтобы сохранить его и как ссылаться на него позже в скрипте. Но разве это лучший способ сделать это?)