Nếu tôi hiểu chính xác bài đăng của bạn, bạn đã chạy một kịch bản từ PHP-CGI thông qua bảng điều khiển của bạn rằng có lẽ có gì đó không ổn và spam máy chủ của API.
Vì vậy, có nhiều khả năng có thể gây ra vấn đề này. Trước hết, khi bạn đang thực thi tập lệnh PHP chỉ cần mua "Php scriptName.php", nó chờ tập lệnh PHP kết thúc và sau đó quay trở lại đầu vào phiên chính của bạn. Nếu bạn đóng vỏ của mình trong quá trình thực hiện tập lệnh, nó sẽ dừng hoạt động của nó. Trừ khi bạn bắt đầu PHP của mình bằng "màn hình" hoặc "&" không có một khả năng nào mà tập lệnh tiếp tục chạy.
Bây giờ hãy phân tích hoạt động của nó. Nếu tập lệnh đi vào một vòng lặp vô hạn, hãy mở một ổ cắm, điều đó có nghĩa là nó sẽ cố gắng kết nối với máy chủ của API như hàng trăm lần mỗi giây. Điều đó có nghĩa là máy chủ đích sẽ cấm bạn từ 10 giây đầu tiên. Một cái gì đó bạn chưa làm rõ với chúng tôi là, tỷ lệ lưu lượng của các yêu cầu kết nối đến Target Server. Hỗ trợ của API có cung cấp cho bạn thêm thông tin về điều đó không? Và nếu có những gì họ đã nói.
Phải nói rằng các VPS của bạn vẫn gửi yêu cầu đến các máy chủ, tôi sẽ đề nghị bạn làm
ps -a xa | GREP PHP
và kiểm tra các phiên bản PHP đang chạy. Bạn có thể tai nạn bắt đầu một tập lệnh PHP trong nền bằng cách thêm A & vào cuối dòng. Nếu lệnh này trả về một cái gì đó. Tìm PID của ứng dụng và chấm dứt nó bằng lệnh sau
Giết -9 PID
Nếu điều đó không hoạt động, hãy khởi động lại VPS của bạn và hỏi họ nếu nó vẫn gửi cho họ các yêu cầu kết nối [điều mà hiện tại không thể và điều đó có nghĩa là tường lửa của họ đặt các gói của bạn ở chế độ chậm [có nghĩa là nó xếp hàng với độ trễ đối với máy chủ của họ ]]
Tôi đang phát triển một số tập lệnh PHP trên một máy chủ chia sẻ Namecheap. Tôi đã vô tình tạo ra một vòng lặp dường như tiếp tục vô thời hạn [hoặc trong một thời gian rất dài], vì vậy bây giờ tôi đang cố gắng giết nó bằng SSH.
Tôi đã xem một danh sách các quy trình chạy với top
, tìm thấy tập lệnh PHP sai và cố gắng giết nó bằng kill
. Tuy nhiên, sau khi tôi giết nó bằng lệnh này, khi tôi thử sử dụng ps
, nó vẫn đang chạy!
Kết quả của ps
:
PID TTY STAT TIME COMMAND
819520 ? S 0:00 /usr/bin/php /my/php/file.php
Tôi đã cố gắng giết chết quá trình này nhiều lần, nhưng nó sẽ không chết!
SSH bị hạn chế, vì vậy tôi không thể sử dụng các lệnh như
kill $[ps aux | grep '[p]hp' | awk '{print $2}']1. Tôi làm gì??!
Quan trọng: Điều này nên được sử dụng trong trường hợp khẩn cấp. & NBSP;This should be used in case of emergency only. Chỉ một dòng… Bạn cũng có thể giết bất kỳ loại quy trình nào khác. Chỉ cần đảm bảo bạn thay thế ____ 12 & nbsp; với tên của quá trình đó. Hãy nhớ giữ chữ cái đầu tiên trong khung.Để tiêu diệt tất cả các quy trình PHP
kill $[ps aux | grep '[p]hp' | awk '{print $2}']
Để tiêu diệt tất cả các quy trình nginx
kill $[ps aux | grep '[n]ginx' | awk '{print $2}']
Để tiêu diệt tất cả các quy trình MySQL
kill $[ps aux | grep '[m]ysql' | awk '{print $2}']
Tôi rất mới sử dụng SSH và đang gặp khó khăn trong việc tìm cách xem và tiêu diệt các quy trình PHP đang chạy.
Khi tôi nói "các quy trình PHP", ý tôi là các tệp PHP được bắt đầu thông qua trình duyệt, nhưng điều đó vẫn tiếp tục chạy khi chúng được cho là dừng lại.
Tôi đã thử điều này:
ps aux | grep php
Nhưng không có bất kỳ kết quả nào, mặc dù tôi biết các tệp đang chạy.
Làm thế nào tôi có thể xem các tệp đang chạy và sau đó giết chúng một cách có chọn lọc [hoặc giết tất cả chúng]?
Hỏi ngày 22 tháng 1 năm 2014 lúc 23:50Jan 22, 2014 at 23:50
HTOP có thể được sử dụng để xem các quy trình và giết chúng một cách có chọn lọc:
sudo apt-get install htop
Như Ckujau đã nói, nó phụ thuộc vào thiết lập của bạn, nhưng thông thường, một quy trình PHP mới được Apache sinh ra và sống trong suốt thời gian yêu cầu. Trong HTOP, kiểm tra Apache trong khi đưa ra yêu cầu. Một quá trình PHP nên bắt đầu. Nếu nó tồn tại, bạn có thể chọn và tiêu diệt nó.
Dưới đây là ảnh chụp màn hình HTOP hiển thị các quy trình PHP-FPM. PHP-FPM duy trì một nhóm các quy trình PHP dài, có thể được sử dụng lại cho nhiều yêu cầu.
Lưu ý 'HTOP' là phiên bản 'Top' thân thiện với người dùng hơn.
Xem thêm HTOP được giải thích: //peteris.rocks/blog/htop/
Đã trả lời ngày 23 tháng 1 năm 2014 lúc 1:21Jan 23, 2014 at 1:21
MarkmarkMark
1863 Huy hiệu Đồng3 bronze badges
3
"Tệp PHP", đó là các tệp chương trình kết thúc trong
kill $[ps aux | grep '[p]hp' | awk '{print $2}']3 có thể không hiển thị với
ps
. Nhưng ps
có thể hiển thị máy móc sẽ lần lượt chạy các tệp kill $[ps aux | grep '[p]hp' | awk '{print $2}']3 đó. Tùy thuộc vào thiết lập của bạn, điều này có thể được quản lý thông qua FAST-CGI hoặc MOD_PHP hoặc thậm chí PHP-FPM. Nếu bạn sử dụng
kill $[ps aux | grep '[p]hp' | awk '{print $2}']7, thì sẽ không có "quy trình PHP" nào có thể nhìn thấy cho
ps
. Bạn vẫn có thể xem liệu động cơ PHP của bạn có được sử dụng bằng cách sử dụng kill $[ps aux | grep '[p]hp' | awk '{print $2}']9:
$ lsof -ln [...]
Đã trả lời ngày 23 tháng 1 năm 2014 lúc 0:22Jan 23, 2014 at 0:22
Ckujauckujauckujau
6334 Huy hiệu bạc13 Huy hiệu Đồng4 silver badges13 bronze badges