2011-10-12 21 views
49

tôi giết một dấu nhắc IRB một cách không quá duyên dáng (bắt đầu với heroku run irb), và bây giờ tôi đã có một quá trình zombie mà tôi dường như không thể giết:Killing quá trình bị bỏ rơi trên Heroku

Process  State    Command 
------------ ------------------ ------------------------------ 
run.3   up for 2h   irb -r ./init.rb 
web.1   up for 0s   thin -p $PORT -e $RACK_ENV -R $HER.. 

tôi đã thử:

  • heroku restart
  • heroku ps:scale run=0
  • heroku ps:restart run.3

Bất cứ ai biết cách tôi có thể ép buộc thoát khỏi nó?

Trả lời

101

tôi nhận thấy một ps:stop lệnh mới được bổ sung cho khách hàng Heroku dòng lệnh cách đây vài ngày:
https://github.com/heroku/heroku/commit/a6d9eb7f314bf2c5f162a508e8d764286fb577bb

Tôi không chắc chắn nếu sự thay đổi đó đã làm cho nó thành phiên bản 2.9.0 nhưng nó sẽ có giá trị một thử.

Cập nhật

này hiện đang trong Heroku Toolbelt. Chỉ cần chạy:

heroku ps:stop <process id from heroku ps> 

Ví dụ:

heroku ps:stop run.8729 
+0

Vậy đó, cảm ơn! –

+12

lưu ý nếu bạn đang tìm kiếm một ID tiến trình điển hình như bạn có thể tìm thấy trong các thiết bị đầu cuối * nix (ví dụ: 54194), bạn sẽ không thấy nó. Thay vào đó, hãy sử dụng một cái gì đó như 'heroku ps: stop run.3' – jbnunn

+0

Hãy chắc chắn rằng bạn kiểm tra với' heroku ps' dừng lại thành công. Khách hàng sẽ chấp nhận ID quá trình không hợp lệ và báo cáo thành công một cách vui vẻ. Tôi cho rằng nó hoạt động sau khi chỉ sử dụng số sau 'run.', nhưng cần phải bao gồm' run.'. Vì vậy, ví dụ: 'heroku ps: stop run.1234' hoạt động nếu bạn thực sự có một quá trình với tên/ID đó,' heroku ps: stop 1234' không, nhưng được báo cáo là đang hoạt động. –

0

chỉnh sửa: họ đã cố định vấn đề này

Heroku không có một cách để diệt các tiến trình run.x bị bỏ rơi.

Nhưng nó sẽ tự động bị giết sau 24 giờ.

+4

gây phiền toái? Tôi đã phải chịu cùng một điều - 24 giờ thanh toán cho một quá trình chấm dứt. Không lý tưởng !! –

+0

Có chính xác. Nếu tôi rời khỏi bàn điều khiển và nó không chấm dứt, tôi bị phạt 24 giờ? Ngớ ngẩn, đặc biệt vì nó rõ ràng không làm gì cả –

+0

@BasharAbdullah, nếu bạn chạy một bảng điều khiển Rails, bạn có thể ngồi đó trong vài phút giữa các lệnh. Những gì bạn sẽ mong đợi Heroku để làm gì? Giết bất kỳ quá trình nào không hoạt động trong vài giây/phút/giờ? Điều đó sẽ gây khó chịu cho các quy trình giao diện điều khiển đường ray khi bạn đang cố gỡ lỗi. – WattsInABox

11

Cảm ơn James !! Tôi cần cập nhật ứng dụng Heroku của mình trước tiên, và nó hoạt động như một sự quyến rũ.

$ sudo gem install heroku 

$ heroku ps #to view processes 

$ heroku stop <process name here> 
Các vấn đề liên quan