⑴ 如何查看php-fpm core mp 文件的錯誤
開啟php的coremp輸出,修改ulimit -c就可以了,但是很多情況下,會提示權利受限,無法修改
[[email protected]]$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 30678
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 32768
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
$ ulimit -c unlimited
-bash: ulimit: core file size: cannot modify limit: Operation not permitted
解決方案:
1.檢查配置
看看shell配置里有沒有 ulimit -c 0 這種類似的關閉的操作,例如
$HOME/.bash_profile 或者 $HOME/.bashrc 之類的,如果有,注釋掉。
#
# Do not proce core mps
#
# ulimit -c 0
2. 全局coremp開啟
使用root用戶,修改 /etc/security/limits.conf
# /etc/security/limits.conf
#
# Each line describes a limit for a user in the form:
#
# <domain> <type> <item> <value>
#
* soft core unlimited
3.退出並從新登錄shell,修改配置
ssh [email protected]
[[email protected]]$ ulimit
-c
0
先切換成root用戶進行設置
su -
ulimit -c unlimited
ulimit -c
unlimited
然後切換回自己的用戶進行設置
su - fukun
ulimit -c unlimited
ulimit -c
unlimited
以上3步有可能不是必須的,但是只要按這個步驟來,肯定能設置成功,在其它方法設置不成功的時候,按這個步驟來試試把。
⑵ ubuntu core mp的文件在哪個目錄
預設是執行程序所在的目錄
⑶ linux 下如何打開core mp文件開關
mp文件可以在程序crash時,方便我們查看程序crash的地方和上下文信息。在window下,要能生成mp文件,需要自己編寫相應的代碼。不過現在網上可以找到相應的代碼,只要把它下載後然後加到自己的工程中去,就可以了! 在linux下面就簡單的許多。只要打開相應的開關,linux會自動在程序crash時生成相應的core文件。這個文件和window下的mp文件類似。 下面是簡單的一些步驟: 1.查看當前是否已經打開了此開關 通過命令:ulimit -c 如果輸出為 0 ,則代表沒有打開。如果為unlimited則已經打開了,就沒必要在做打開。 2.通過命令打開 ulimit -c unlimited .然後通過步驟1,可以監測是否打開成功。 3.如果你要取消,很簡單:ulimit -c 0 就可以了 通過上面的命令修改後,一般都只是對當前會話起作用,當你下次重新登錄後,還是要重新輸入上面的命令,所以很麻煩。我們可以把通過修改 /etc/profile文件 來使系統每次自動打開。步驟如下: 1.首先打開/etc/profile文件 一般都可以在文件中找到 這句語句:ulimit -S -c 0 /dev/null 2&1.ok,根據上面的例子,我們只要把那個0 改為 unlimited 就ok了。然後保存退出。 2.通過source /etc/profile 使當期設置生效。 3.通過ulimit -c 查看下是否已經打開。 其實不光這個命令可以加入到/etc/profile文件中,一些其他我們需要每次登錄都生效的都可以加入到此文件中,因為登錄時linux都會載入此文件。比如一些環境變數的設置。 還有一種方法可以通過修改/etc/security/limits.conf文件來設置,這個方法沒有試過,也是網上看到。不過上面兩種就可以了! 最後說一下生成core mp文件的位置,默認位置與可執行程序在同一目錄下,文件名是core.***,其中***是一個數字。core mp文件名的模式保存在/proc/sys/kernel/core_pattern中,預設值是core。通過以下命令可以更改core mp文件的位置(如希望生成到/tmp/cores目錄下) echo 「/tmp/cores/core」 /proc/sys/kernel/core_pattern 設置完以後我們可以做個測試,寫個程序,產生一個異常。然後看到當前目錄會有個core*的文件。然後我們可以 gdb core。* 程序 進行調試。