


What to do if Linux does not generate core files
Solutions for Linux not generating core files: 1. Check whether the Core dump directory exists and set the process to have write permissions for the directory; 2. Check whether the service program calls seteuid(); 3. Set it to be large enough Core file size limit; 4. Modify profile, etc.
#The operating environment of this article: linux5.9.8 system, Dell G3 computer.
What should I do if Linux does not generate core files? Why is the core file not generated?
1. Make sure that the directory where the Core dump is stored exists and that the process has write permissions to the directory.
The directory where the Core dump is stored is the current directory of the process, which is generally the directory where the process was located when the command was issued to start the process. But if it is started through a script, the script may modify the current directory. In this case, the real current directory of the process will be different from the directory where the script was originally executed. At this time, you can view the target of the "/proc/
2. If the program calls seteuid()/setegid() to change the effective user or group of the process, the system will not generate Core dump for these processes by default.
Many service programs will call seteuid(), such as MySQL. No matter what user you use to run mysqld_safe to start MySQL, the effective user for mysqld is always the msyql user. If you originally ran a program as user A, but the user of the program you see in PS is B, then these processes have called seteuid. In order to enable these processes to generate Coredump, (echo "1" > /proc/sys/kernel/suid_dumpable) is required.
3. As we all know, we need to set a large enough Core file size limit.
The size of the Core file generated when the program crashes is the size of the memory occupied by the program when it is running. However, the behavior when the program crashes cannot be estimated based on the normal behavior. For example, errors such as buffer overflow may cause the stack to be destroyed. Therefore, the value of a certain variable is often modified into a mess, and then the program uses this size to apply for memory. This may cause the program to occupy a lot more memory than usual. Therefore, no matter how little memory the program occupies during normal operation, it is better to ensure that the Core file is generated and the size limit is set to unlimited.
4. Add:
ulimit -c unlimited > /dev/null 2?&1
to /etc/profile 5. Programs that are generally started on the CLI can be terminated outside the program if you set:
ulimit -c unlimited
Generate core dump file. However, for programs running in daemon mode, the main difference from programs started by CLI is the running environment of the process, which includes
cwd (current working directory). If you define the format of the core file using a relative path, for example, define /proc/sys/kernel/core_pattern as:
core-%e-%p-%t
Generally speaking, the cwd of the daemon file is /, and you can pass /proc/< your_program_pid>/cwd to view, usually connect to the / directory. And if the user does not have write permissions for this directory, then the core dump file will not be generated.
The most direct solution is to modify /proc/sys/kernel/core_pattern to the absolute path: /data/coredump/core-%e-%p-%t
and ensure This is basically OK.
Modify the core dump file format in the /proc/sys/kernel/core_pattern file to an absolute path, for example:
/data/coredump/core-%e-%p-%t
When will the core file not be generated?
The core file will not be generated under the following conditions:
(a) The process is set-user-ID, and the current user is not the owner of the program file;
(b) The process is set-group-ID, and the current user is not the group owner of the program file;
(c) The user does not have permission to write to the current working directory;
( d) The file is too large. The permissions of the core file (assuming the file did not exist before this) are usually user read/write, group read and other read.
Recommended learning: "linux video tutorial"
The above is the detailed content of What to do if Linux does not generate core files. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



How to use Docker Desktop? Docker Desktop is a tool for running Docker containers on local machines. The steps to use include: 1. Install Docker Desktop; 2. Start Docker Desktop; 3. Create Docker image (using Dockerfile); 4. Build Docker image (using docker build); 5. Run Docker container (using docker run).

The key differences between CentOS and Ubuntu are: origin (CentOS originates from Red Hat, for enterprises; Ubuntu originates from Debian, for individuals), package management (CentOS uses yum, focusing on stability; Ubuntu uses apt, for high update frequency), support cycle (CentOS provides 10 years of support, Ubuntu provides 5 years of LTS support), community support (CentOS focuses on stability, Ubuntu provides a wide range of tutorials and documents), uses (CentOS is biased towards servers, Ubuntu is suitable for servers and desktops), other differences include installation simplicity (CentOS is thin)

Troubleshooting steps for failed Docker image build: Check Dockerfile syntax and dependency version. Check if the build context contains the required source code and dependencies. View the build log for error details. Use the --target option to build a hierarchical phase to identify failure points. Make sure to use the latest version of Docker engine. Build the image with --t [image-name]:debug mode to debug the problem. Check disk space and make sure it is sufficient. Disable SELinux to prevent interference with the build process. Ask community platforms for help, provide Dockerfiles and build log descriptions for more specific suggestions.

Docker process viewing method: 1. Docker CLI command: docker ps; 2. Systemd CLI command: systemctl status docker; 3. Docker Compose CLI command: docker-compose ps; 4. Process Explorer (Windows); 5. /proc directory (Linux).

Docker uses Linux kernel features to provide an efficient and isolated application running environment. Its working principle is as follows: 1. The mirror is used as a read-only template, which contains everything you need to run the application; 2. The Union File System (UnionFS) stacks multiple file systems, only storing the differences, saving space and speeding up; 3. The daemon manages the mirrors and containers, and the client uses them for interaction; 4. Namespaces and cgroups implement container isolation and resource limitations; 5. Multiple network modes support container interconnection. Only by understanding these core concepts can you better utilize Docker.

VS Code system requirements: Operating system: Windows 10 and above, macOS 10.12 and above, Linux distribution processor: minimum 1.6 GHz, recommended 2.0 GHz and above memory: minimum 512 MB, recommended 4 GB and above storage space: minimum 250 MB, recommended 1 GB and above other requirements: stable network connection, Xorg/Wayland (Linux)

The reasons for the installation of VS Code extensions may be: network instability, insufficient permissions, system compatibility issues, VS Code version is too old, antivirus software or firewall interference. By checking network connections, permissions, log files, updating VS Code, disabling security software, and restarting VS Code or computers, you can gradually troubleshoot and resolve issues.

VS Code To switch Chinese mode: Open the settings interface (Windows/Linux: Ctrl, macOS: Cmd,) Search for "Editor: Language" settings Select "Chinese" in the drop-down menu Save settings and restart VS Code
