У меня есть сценарий, работающий на фоне моего linux-сервера, и я хотел бы поймать сигналы, такие как перезагрузка или что-либо, что убило бы этот сценарий, и вместо этого сохранить любую важную информацию перед фактическим выходом.
Я думаю, что большинство из того, что мне нужно перехватить, это SIGINT, SIGTERM, SIGHUP, SIGKILL.
Как поймать любой из этих сигналов и заставить его выполнить функцию выхода, иначе он продолжит выполнять то, что делал?
псевдо perl код:
#!/usr/bin/perl
use stricts;
use warnings;
while (true)
{
#my happy code is running
#my happy code will sleep for a few until its breath is back to keep running.
}
#ops I have detected an evil force trying to kill me
#let's call the safe exit.
sub safe_exit()
{
# save stuff
exit(1);
}
псевдо php код:
<?php
while (1)
{
#my happy code is running
#my happy code will sleep for a few until its breath is back to keep running.
}
#ops I have detected an evil force trying to kill me
#let's call the safe exit.
function safe_exit()
{
# save stuff
exit(1);
}
?>