2011-09-23 5 views
14

Tôi có một đơn giản vô hạn for vòng lặp tìm kiếm như thế này:Dừng một vòng lặp vô hạn trên một máy chủ từ xa PHP

set_time_limit (0); 
for (;;) 
{ 
    ... //Doing some stuff including to write to a file 
    sleep(300); 
} 

Nó đang chạy trên máy chủ của tôi. (Tài khoản lưu trữ được chia sẻ)

Làm thế nào để tôi có thể dừng nó?

+1

Giết dòng lệnh xử lý sẽ thực hiện thủ thuật. Chạy trên Linux? kiểm tra http://linux.about.com/library/cmd/blcmdl_kill.htm –

+0

Xóa tệp? – Mob

Trả lời

13

giết quá trình. giả sử bạn có thể truy cập vào bảng điều khiển thông qua ssh và máy chủ của bạn chạy trên linux:

ps -ef | grep php // to get a list of php-processes 

kill [process-id] // kill the process by process-id 
+0

Bạn nghĩ sao tôi có thể truy cập thông qua SSH? Máy chủ là linux/Debian. – LouwHopley

+0

http://www.putty.org/ - chỉ cần tải xuống, nhập địa chỉ IP máy chủ, tên người dùng và mật khẩu của bạn và: voilà! – oezi

+0

@oezi Tôi cũng có một kịch bản lặp trên máy chủ. Tôi đang nói về máy chủ [Amazon ec2] (http://aws.amazon.com/ec2/). Để giết tập lệnh này, sử dụng 'ps -x' và' sudo kill [proces_id] '. Chỉ cần nói ... :) –

1

Bạn có thể muốn liên hệ với dịch vụ lưu trữ của mình và yêu cầu họ giết tập lệnh của bạn. Nhiều khả năng bạn không có quyền truy cập thực thi hoặc truy cập ssh. Có lẽ bạn nên xây dựng một khả năng để thoát khỏi chương trình của bạn trong lần tiếp theo bạn tạo một vòng lặp vô hạn.

+0

Ý tưởng tốt để đặt một số cách để giết nó. Sẽ đặt một tập tin để đọc. Nếu đọc "sai" - chết. – LouwHopley

1

Tôi đã đăng nhập qua SSH và đã cố gắng hủy quá trình nhưng có vẻ như không hoạt động - có thể quy trình không chính xác vì có một số ít ở đó.

Bạn luôn có thể khởi động lại apache làm phương sách cuối cùng; sẽ sửa lỗi ;-)