Có cách nào để ngăn chặn kịch bản? Tôi đang ở trong một lưu trữ được chia sẻ, vì vậy tôi không có quyền truy cập vào dấu nhắc lệnh, và tôi không biết PID.
Sau đó không.
Nhưng bạn có chắc chắn bạn không có quyền truy cập shell nào không? Ngay cả thông qua PHP? Nếu bạn làm thế, bạn có thể thử ....
<?php
print `ps -ef | grep php`;
... và nếu bạn có thể xác định quá trình này từ mà sau đó ....
<?php
$pid=12345; // for example.
print `kill -9 $pid`;
Và thậm chí nếu bạn không có truy cập để chạy các lệnh shell, bạn có thể tìm thấy pid trong/proc (trên hệ thống linux) và chấm dứt nó bằng cách sử dụng phần mở rộng POSIX ....
<?php
$ps=glob('/proc/[0-9]*');
foreach ($ps as $p) {
if (is_dir($p) && is_writeable($p)) {
print "proc= " . basename($p);
$cmd=file_get_contents($p . '/cmdline');
print "/" . file_get_contents($p . '/cmdline');
if (preg_match('/(php).*(myscript.php)/',$cmd)) {
posix_kill(basename($p), SIGKILL);
print " xxxxx....";
break;
}
print "\n";
}
}
bạn có quyền truy cập SSH không? –
Sử dụng 'hệ thống' để chạy'/bin/ps' và tìm PID của quá trình vi phạm, sau đó ['posix_kill'] (http://ca.php.net/manual/en/function.posix-kill.php) để giết nó. Có thể nhà cung cấp dịch vụ lưu trữ được chia sẻ của bạn có bảng điều khiển của một số loại có công cụ quản lý quy trình. –
Nếu đây là sự kiện số ít, bạn chỉ nên gọi cho bộ phận hỗ trợ ... – Olaf