[英]Site in Laravel Valet can't find Memcache, but I see the process running—what now?
[英]Process is running but I can't find it
我有一個symfony任務,可以使用以下命令運行:
/home/jason/projects/mcif/./symfony import:start-queue
然后,通過執行以下操作,我可以看到該進程正在運行:
$ ps aux | grep php
jason 5760 91.0 2.5 101628 78128 pts/0 R 13:10 0:04 php /home/jason/projects/mcif/./symfony import:process --id=593 --type=Import
jason 5775 0.0 0.0 4008 764 pts/0 S+ 13:10 0:00 grep --color=auto php
這部分工作正常。 現在:
這是我的腳本:
<?php exec('/home/jason/projects/mcif/./symfony import:start-queue');
如果我在命令行上運行此腳本,它將運行正常。 如果通過瀏覽器運行此腳本,則會收到該腳本發送的電子郵件,因此我知道它正在運行,但是當我運行ps aux
時找不到它的進程。
我需要能夠找到該進程,因為我需要能夠手動將其殺死。
有什么想法嗎?
htop是一個命令,可讓您按樹排序,以便可以看到可能導致該過程的內容,並在希望直觀查看時以這種方式殺死它。
getpid
(2)。 或者,如果您打算接受黑客攻擊,請/proc/self
。
我可以考慮一些解決方案:
在您以后台啟動的文件內部(/home/jason/projects/mcif/./symfony import:start-queue
),我認為這是PHP腳本,否則此方法不起作用http://php.net/manual/zh/ function.getmypid.php並將pid寫入光盤上的文件。 這樣,您可以通過從文件讀取pid殺死它。
啟動后台進程,該進程從命名管道( mkfifo
)讀取(當從管道中讀取exec
make的調用時) 以請求來自apache(網站)的請求,該請求寫入命名管道。 后台進程應以ps
安裝redis並將其從apache(網站)推送到列表中。 來自后台進程的blpop消息。 同樣,您應該能夠在ps
找到后台進程
它是通過瀏覽器運行的,這取決於您的確切設置。
php-cgi
進程中運行。 我真不知道你怎么能找出哪一個是跑不過你的任務,但它可能就更安全殺死這些(特別是如果你使用mod_fcgid而不是FastCGI的-它處理PHP程序死亡更好)。 因此,簡而言之,如果希望能夠殺死它而不引起其他不穩定情況,請不要從Web瀏覽器中運行它。 該問題的其他答案可以讓您找到進程ID,但是您幾乎會發現它肯定是apache進程,您可能希望也可能不希望終止它。
如果您不介意不穩定,則只需重新啟動apache服務器,它將終止工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.