What are Linux signals like SIGHUP, SIGINT, SIGTERM, and SIGKILL?
Jul 24, 2025 am 12:12 AMLinux signals are mechanisms for inter-process communication or response to external events. Common signals include SIGHUP, SIGINT, SIGTERM, and SIGKILL. 1. SIGHUP is used to notify the process of reloading configuration or terminal disconnection, such as restarting the service or log rotation; 2. SIGINT is sent through Ctrl C to interrupt the foreground task; 3. SIGTERM is the default termination signal, allowing the process to exit gracefully; 4. SIGKILL forces the process to terminate and is only used when there is no response. Correctly selecting signals can avoid data corruption and service interruption.
Linux signals are a way for processes to communicate with each other or respond to external events. They're like messages sent to a running program to tell it something important has happened. You might not see them in action every day, but when things go wrong or you're managing services, knowing how they work can save you time and headaches.
Here's a breakdown of some of the most common signals: SIGHUP , SIGINT , SIGTERM , and SIGKILL .
What is SIGHUP and when is it used?
SIGHUP stands for "signal hang up." Originally, it was sent to a process when the controlling terminal disconnected — like if you were SSHed into a server and your connection dropped. These days, it's often used to tell a process to reload its configuration files without stopping.
For example:
- Restarting a web server without downtime
- Telling a logging service to rotate logs
If you want to send a SIGHUP manually, you can do it with kill -HUP <pid></pid>
.
A common use case is sending SIGHUP to a background process that was started from a terminal session after closing that session. If the process isn't set up to ignore the signal, it might terminate unless it was started with something like
nohup
or run inside a screen/tmux session.
SIGINT – How does it stop processes?
SIGINT means "interrupt signal." It's what gets sent when you press Ctrl C in your terminal. It tells a running program to stop what it's doing, usually allowing it to clean up resources before exiting.
Some key points about SIGINT:
- It can be caught or ignored by programs.
- Most command-line tools will exit gracefully when receiving it.
- Background jobs can still receive this signal if they're tied to the terminal.
If you've ever typed a command and then canceled it with Ctrl C, you've used SIGINT.
SIGTERM – The polite way to ask a process to quit
SIGTERM is the default signal sent by the kill
command. It's the standard way to request that a process shut down. Unlike SIGKILL, it gives the process a chance to clean up — close files, save state, or finish handling current requests.
This matters because:
- Services like databases or web servers need time to shut down properly
- Killing them with something stronger than SIGTERM could leave data in an inconsistent state
You can send it using kill <pid></pid>
(without any extra flags) or kill -TERM <pid></pid>
.
Some applications have custom behavior for SIGTERM — for example, telling a long-running script to log progress and exit cleanly.
SIGKILL – The last resort
SIGKILL is the big hammer. It forces a process to stop immediately. There's no chance for cleanup, no graceful exit — just instant termination. This signal cannot be caught or ignored by a process.
Use SIGKILL only when:
- A process isn't responding to SIGTERM
- It's stuck and consuming system resources
- You're sure it's safe to kill instantly
To send it: kill -9 <pid></pid>
Be careful with SIGKILL. For example, killing a database process this way might corrupt data if it was writing to disk at the time.
So, to recap:
- Use SIGHUP to reload config or reconnect sessions
- Use SIGINT to cancel foreground tasks
- Prefer SIGTERM for clean shutdowns
- Save SIGKILL for stubborn processes
These signals are basic tools in Linux system management. Knowing which one to use — and when — helps avoid unnecessary crashes or data loss.
Basically that's it.
The above is the detailed content of What are Linux signals like SIGHUP, SIGINT, SIGTERM, and SIGKILL?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

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

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

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

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)

In PHP, the PCNTL extension is a very useful extension, which provides us with some functions for process control and signal handling. This article will briefly introduce the PCNTL extension for PHP, including how to install and use it. Install PCNTL extension In PHP5.3.0 and above, the PCNTL extension is added to the core code of PHP. However, in some distributions, the PCNTL extension may not be included in the default PHP installation. To determine if the PCNTL extension is already installed, you can use

In recent years, with the continuous development of information technology, most work cannot be done without the help of computers. During computer operation, we often encounter situations where multiple processes need to be run at the same time, and improving process control efficiency is very critical. This article will introduce how to use the nohup and & commands in Linux systems to improve process control efficiency. 1. Understand the nohup and & commands. In Linux systems, nohup is a command used to ignore the hang signal. It can make the command run in the background, even if the user exits the terminal.

Title: In-depth understanding of the Linux PS command: Function introduction and code examples In the Linux operating system, the PS command is a very practical tool that can help users view process information running in the system and monitor the operation of the system. This article will introduce the basic functions and common options of the PS command, and demonstrate how to use the PS command to view and manage processes through specific code examples. 1. Introduction to the PS command The PS command is the abbreviation of ProcessStatus and is used to display information about the processes currently running in the system.

In this section, we will see how to execute zombie and orphan processes in a single program in C/C++. Before getting to the point, let's first understand what zombie processes and orphan processes are. Zombie Process A zombie process is a process that has completed execution but still has remaining space. Entry in the process table. Zombie processes usually occur in child processes because the parent process still needs to read the exit status of its child process. Once this is done using the wait system call, the zombie process is eliminated from the process table. This is called harvesting zombie processes. Orphaned Processes Orphaned processes are those processes that are still running even though their parent process has terminated or completed. A process may become orphaned intentionally or unintentionally. Intentionally orphaned processes run in the background without any manual support. this

Go language is an open source programming language. It is increasingly popular among programmers because of its simplicity, ease of use, efficiency and security. In the Go language, process control and signal processing are also very important parts. This article will delve into the process control and signal processing in the Go language. Process calls in Go language Process control in Go language can realize calling and control between multiple processes. The Go language provides the os library and the exec library, which can start and call processes. By calling the command line in the os library, you can create

The Task Manager of Windows computers is a very useful tool that can help you understand and manage running programs and services. In this article, we'll show you how to use Task Manager to improve your computer's performance and efficiency. Open the Task Manager To open the Task Manager, you can use the shortcut "Ctrl+Shift+Esc" or right-click on the taskbar and select "Task Manager". If your computer is stuck or crashing, you can still

With the continuous upgrading of computer hardware, multi-core processors have become mainstream. In order to better utilize the performance of multi-core processors, multi-process programming has become a very important technology. In the PHP language, multi-process programming is even more essential, especially when processing large-scale data. However, PHP had very limited support for multi-process programming in early versions, and it was not until PHP 7.0 that multi-process programming was officially supported. This article will introduce in detail how to use PHP7.0 for multi-process programming. 1. What is multi-process programming?

As Internet technology continues to develop, Web applications are becoming more and more complex. To be able to handle web applications more efficiently, using multi-process technology is becoming an increasingly popular choice. In this article, we will introduce how to use PHP for multi-process design. What is Multiprocessing In computer science, a process refers to an instance of a running program. Simply put, a running program is a process. Multiprocessing refers to the ability to run multiple programs simultaneously. Each program runs in its own process, independent and
