C++ 应用程序 - 如何 stop/cleanup 如果它是 运行 作为 Linux 服务?
C++ app - how to stop/cleanup if it is run as Linux service?
我基本上有一个用于 Linux CentOS9 的控制台 C++ 应用程序。我将使用 systemctl start/stop
.
运行 它作为一项服务
目前,如果用户在控制台中按 Enter 键,应用程序将退出,但这在服务模式下是不可能的,因为用户在登录后不会看到应用程序控制台。
如何才能让应用程序检测到它正在 stopped/terminated 以便它可以清理资源(关闭文件)?
似乎 systemctl stop
发送了 SIGTERM。
只需为其注册回调
void signal_callback()
{
printf("Process is going down\n");
}
signal(SIGTERM, signal_callback)
How systemd stop command actually works
我基本上有一个用于 Linux CentOS9 的控制台 C++ 应用程序。我将使用 systemctl start/stop
.
目前,如果用户在控制台中按 Enter 键,应用程序将退出,但这在服务模式下是不可能的,因为用户在登录后不会看到应用程序控制台。
如何才能让应用程序检测到它正在 stopped/terminated 以便它可以清理资源(关闭文件)?
似乎 systemctl stop
发送了 SIGTERM。
只需为其注册回调
void signal_callback()
{
printf("Process is going down\n");
}
signal(SIGTERM, signal_callback)
How systemd stop command actually works