我正在使用rspec进行测试。我和他的朋友在他的笔记本电脑上正在做一个项目,测试正在通过。我克隆了回购并在我的笔记本电脑上运行它,所有测试都突然失败了。
所以我决定重置测试数据库。我打电话给rake db:test:prepare RAILS_ENV=test
。然后,我开始收到错误说:
ActiveRecord::StatementInvalid: PG::ObjectInUse: ERROR: database "(app name)" is being accessed by other users
DETAIL: There is 1 other session using the database.
我查看了其他stackoverflow帖子,发现我可以使用
终止连接sudo kill -9` ps -u postgres -o pid =`
这成功地杀了一些东西并在控制台上给我结果如下:
usage: kill [-s signal_name] pid ...
kill -l [exit_status]
kill -signal_name pid ...
kill -signal_number pid ...
我这样做是否正确?如何成功删除其他会话?
答案 0 :(得分:0)
它看起来像你正在运行的kill命令实际上是终止任何东西。我也不建议直接杀死任何postgres进程,因为这可能是不安全的。
而是尝试运行ps aux | grep ruby
或ps aux | grep rspec
在您不知情的情况下,ruby或rspec进程可能仍在运行。从那里,您可以获取该进程的进程ID(pid)并使用kill -15 <pid>
将其终止。如果仍然没有停止,请使用kill -9 <pid>
强制退出。