如何在Shell中后臺啟動(dòng)并啟用dump文件
在Linux中,如果我們需要在后臺運(yùn)行程序,并且還希望生成dump文件,這可能會(huì)比較麻煩。但是我們可以通過使用一個(gè)批處理腳本來解決這個(gè)問題。步驟1:設(shè)置輸出目錄首先,我們需要設(shè)置一個(gè)輸出目錄來存儲(chǔ)程序
在Linux中,如果我們需要在后臺運(yùn)行程序,并且還希望生成dump文件,這可能會(huì)比較麻煩。但是我們可以通過使用一個(gè)批處理腳本來解決這個(gè)問題。
步驟1:設(shè)置輸出目錄
首先,我們需要設(shè)置一個(gè)輸出目錄來存儲(chǔ)程序的輸出和dump文件。我們可以使用以下命令創(chuàng)建一個(gè)名為"out"的目錄:
```shell
nohupath"out/"
if [ ! -d $nohupath ]; then
mkdir $nohupath
fi
```
步驟2:設(shè)置coredump輸出目錄
接下來,我們還需要設(shè)置一個(gè)coredump輸出目錄來存儲(chǔ)生成的dump文件。我們可以使用以下命令創(chuàng)建一個(gè)名為"corefile"的目錄,并將權(quán)限設(shè)置為777:
```shell
corepath"corefile/"
if [ ! -d $corepath ]; then
mkdir $corepath
chmod 777 $corepath
fi
```
步驟3:設(shè)置coredump文件名
我們可以使用以下命令來設(shè)置coredump文件的命名方式:
```shell
echo -e $corepath"core-%e-%s-%u-%g-%p-%t" > /proc/sys/kernel/core_pattern
```
其中,以下參數(shù)將會(huì)被替換為相應(yīng)的值:
- %e – 程序文件名
- %s – 生成core文件時(shí)收到的信號
- %u – 進(jìn)程用戶id
- %g – 進(jìn)程用戶組id
- %p – 進(jìn)程號
- %t – 生成core文件的時(shí)間戳(從1970年1月1日0點(diǎn)開始的秒數(shù))
- %h – 主機(jī)名
步驟4:設(shè)置core文件名后綴
我們可以使用以下命令來設(shè)置core文件名的后綴:
```shell
echo -e "1" > /proc/sys/kernel/core_uses_pid
```
這將在core文件名中添加進(jìn)程號作為后綴。
步驟5:啟動(dòng)程序并重定向輸出
最后,我們可以使用以下命令來在后臺啟動(dòng)程序,并將輸出重定向到之前設(shè)置的輸出目錄中:
```shell
nohup ./$1 >$nohupath$1$time'.log' 2>1
```
這將在后臺啟動(dòng)名為$1的程序,并將輸出保存為"$nohupath$1$time.log"文件。
步驟6:生成dump文件
為了能夠生成dump文件,我們還需要使用以下命令來設(shè)置當(dāng)前終端的限制:
```shell
ulimit -c unlimited
```
這將允許當(dāng)前終端生成dump文件。
通過按照以上步驟操作,我們可以在Shell中后臺啟動(dòng)程序,并且啟用dump文件來進(jìn)行問題排查和調(diào)試。