春季启动清理西格基尔



我正在运行一个 SpringBoot 应用程序。我使用@PreDestroy注释添加了一些清理操作。当我使用 SIGTERM 终止 tomcat 的 ${PID} 的进程时,它通过调用标有 @PreDestroy 的方法执行所有清理任务。但是,当我使用 SIGKILL 即杀死 -9 ${PID} 的雄猫时,不会执行清理。

有没有办法让应用程序在使用 SIGKILL 终止时执行所有销毁前工作?

不,没有。 常规kill等待进程退出,而kill -9则不退出并立即将其杀死。重要的是,SIGKILL和SIGSTOP的信号不能被捕获,阻止或忽略。MAN 7 信号显示了每个信号含义的简短摘要:

Signal     Value     Action   Comment
──────────────────────────────────────────────────────────────────────
SIGHUP        1       Term    Hangup detected on controlling terminal
or death of controlling process
SIGINT        2       Term    Interrupt from keyboard
SIGQUIT       3       Core    Quit from keyboard
SIGILL        4       Core    Illegal Instruction
SIGABRT       6       Core    Abort signal from abort(3)
SIGFPE        8       Core    Floating-point exception
SIGKILL       9       Term    Kill signal
SIGSEGV      11       Core    Invalid memory reference
SIGPIPE      13       Term    Broken pipe: write to pipe with no
readers; see pipe(7)
SIGALRM      14       Term    Timer signal from alarm(2)
SIGTERM      15       Term    Termination signal
SIGUSR1   30,10,16    Term    User-defined signal 1
SIGUSR2   31,12,17    Term    User-defined signal 2
SIGCHLD   20,17,18    Ign     Child stopped or terminated
SIGCONT   19,18,25    Cont    Continue if stopped
SIGSTOP   17,19,23    Stop    Stop process
SIGTSTP   18,20,24    Stop    Stop typed at terminal
SIGTTIN   21,21,26    Stop    Terminal input for background process
SIGTTOU   22,22,27    Stop    Terminal output for background process

相关内容

  • 没有找到相关文章

最新更新