2016 - 2024

感恩一路有你

如何在Shell中后台启动并启用dump文件

浏览量:3714 时间:2024-01-21 14:46:59 作者:采采

在Linux中,如果我们需要在后台运行程序,并且还希望生成dump文件,这可能会比较麻烦。但是我们可以通过使用一个批处理脚本来解决这个问题。

步骤1:设置输出目录

首先,我们需要设置一个输出目录来存储程序的输出和dump文件。我们可以使用以下命令创建一个名为"out"的目录:

```shell

nohupath"out/"

if [ ! -d $nohupath ]; then

mkdir $nohupath

fi

```

步骤2:设置coredump输出目录

接下来,我们还需要设置一个coredump输出目录来存储生成的dump文件。我们可以使用以下命令创建一个名为"corefile"的目录,并将权限设置为777:

```shell

corepath"corefile/"

if [ ! -d $corepath ]; then

mkdir $corepath

chmod 777 $corepath

fi

```

步骤3:设置coredump文件名

我们可以使用以下命令来设置coredump文件的命名方式:

```shell

echo -e $corepath"core-%e-%s-%u-%g-%p-%t" > /proc/sys/kernel/core_pattern

```

其中,以下参数将会被替换为相应的值:

- %e – 程序文件名

- %s – 生成core文件时收到的信号

- %u – 进程用户id

- %g – 进程用户组id

- %p – 进程号

- %t – 生成core文件的时间戳(从1970年1月1日0点开始的秒数)

- %h – 主机名

步骤4:设置core文件名后缀

我们可以使用以下命令来设置core文件名的后缀:

```shell

echo -e "1" > /proc/sys/kernel/core_uses_pid

```

这将在core文件名中添加进程号作为后缀。

步骤5:启动程序并重定向输出

最后,我们可以使用以下命令来在后台启动程序,并将输出重定向到之前设置的输出目录中:

```shell

nohup ./$1 >$nohupath$1$time'.log' 2>1

```

这将在后台启动名为$1的程序,并将输出保存为"$nohupath$1$time.log"文件。

步骤6:生成dump文件

为了能够生成dump文件,我们还需要使用以下命令来设置当前终端的限制:

```shell

ulimit -c unlimited

```

这将允许当前终端生成dump文件。

通过按照以上步骤操作,我们可以在Shell中后台启动程序,并且启用dump文件来进行问题排查和调试。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。