我正在 AMI Linux 盒子上的 jenkins 服务器上运行无头 selenium 进程,所有进程均由 runit 管理。
问题是,发出“sv stop selenium”或“sv reload selenium”不会终止或杀死其子进程中的旧实例,而只是将它们与runsv进程分离,因此它们在runit不知道的情况下继续运行,从而导致尝试重新启动服务失败。
我认为我的问题与此有关: How to write runit custom stop script
意思是:我可能应该尝试自定义 d 控制脚本,以便手动清理。
我遵循这个想法: /sf/ask/27441571/
然而,从 /etc/sv/selenium/supervise/pid 中获取 pid 并将其转发到循环并没有任何区别。
有什么建议吗?
sv运行脚本:
#!/bin/sh
exec 2>&1
exec chpst -u jenkins -U jenkins /usr/bin/xvfb-run \
--server-args="-screen 0 1024x768x32" \
/usr/bin/java -jar /usr/local/bin/selenium-server-standalone-2.42.1.jar \
-ensureCleanSession \
-browserSessionReuse
Run Code Online (Sandbox Code Playgroud)