#1
|
|||
|
|||
sigaction(2)
Nil A написал(а) к All в May 23 03:34:32 по местному времени:
Нello, All! С целью продуть немного, а то уже в тудее "Win & Lin" предложили. Так то самый смачный рулинукс обычно в дранках случается, но эпизодически, сейчас не та фаза. Тут мне потребовалось выяснить, какая с@ка sighup присылает процессу каждый час (чую пятой точкой, какой-то логротейт). Ничего лучше, чем запачить, и добавить SA_SIGINFO не придумал. А ты, анонимус, что бы мне предложил, может быть какой-то новый тул придумали уже, чтобы прям как strace запустил, и кернел тебе сказал, откудова вестимы киллы? И вот, с чего я начал, так то я не каждый день sigaction делаю, полез в man $САБЖ, а там флажков.. как у дурака фантиков, и вот что мне это напомнило.. шиндовз апи, они там так любят делать как раз. Когда группа винворда, прям в кернеле, делает свои какие-то специфичные сисколы, просто потому что им вот так сейчас удобно сделать, и внутри одной конторы это можно на Вась-Вась организовать, если на короткой ноге. Ну понятно, что есть System V (кстати Ви, или пять? шутка), есть POSIX, кстати винды как-то прям тоже пристраиваются рядом, что они все такие Посиксы в разных местах своих. Best Regards, Nil --- GoldED+/LNX 1.1.5 |
#2
|
|||
|
|||
sigaction(2)
Alexey Fayans написал(а) к Nil A в May 23 07:49:21 по местному времени:
Нello Nil! On Thu, 11 May 2023 at 03:34 +0300, you wrote to All: NA> А ты, анонимус, что бы мне предложил, может быть какой-то новый тул NA> придумали уже, чтобы прям как strace запустил, и кернел тебе сказал, NA> откудова вестимы киллы? === Start of trace_signals.stp === # processtree is from https://sourceware.org/systemtap/exa...etwork/connectstat.stp # requires systemtap package # usage: stap trace_signals.stp function process_tree() { curproc = taskcurrent(); parentpid = task_pid(task_parent(curproc)); while (parent_pid != 0) { printf("%s (%d),%d,%d <- ", taskexecname(cur_proc), task_pid(cur_proc), task_uid(cur_proc), task_gid(curproc)); curproc = task_parent(curproc); parentpid = task_pid(task_parent(curproc)); } # init process if (taskpid(curproc) == 1) { printf("%s (%d),%d,%d\n", taskexecname(cur_proc), task_pid(cur_proc), task_uid(cur_proc), task_gid(curproc)); } } probe signal.send { if (signame == "SIGKILL" || sig_name == "SIGTERM" || signame == "SIGНUP") { printf("[%s] %s to %s (%d) by ", ctime(gettimeofdays()), sig_name, pid_name, sigpid); process_tree(); } } === End of trace_signals.stp === ... Music Station BBS | https://bbs.bsrealm.net | telnet://bbs.bsrealm.net --- GoldED+/W32-MSVC 1.1.5-b20230214 |