On Thu, Sep 28, 2023 at 11:52:49PM +0300, Andrey Jr. Melnikov wrote:
> >  и он перед экзитом выполняет такой код:
> 
> > [pid   848] --- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=1428154, 
> > si_uid=0} ---
> > [pid   848] gettid()                    = 848
> > [pid   848] getpid()                    = 848
> > ...
> > [pid   848] kill(848, SIGTTOU)          = 0
> > [pid   848] --- SIGTTOU {si_signo=SIGTTOU, si_code=SI_USER, si_pid=848, 
> > si_uid=0} ---
> > [pid   848] sigreturn({mask=[]})        = 0
> > [pid   848] send(1, "<46>Sep 28 16:37:26 rsyslogd: [origin 
> > software=\"rsyslogd\" swVersion=\"8.2308.0\" x-pid=\"848\" 
> > x-info=\"https://www.rsyslog.com\";] exiting on signal 15.", 146, 
> > MSG_NOSIGNAL) = -1 ECONNREFUSED (В соединении отказано)
> > [pid   848] close(1)                    = 0
> > [pid   848] socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 1
> > [pid   848] connect(1, {sa_family=AF_UNIX, sun_path="/dev/log"}, 110) = -1 
> > ENOENT (Нет такого файла или каталога)
> > [pid   848] close(1)                    = 0
> 
> Это стандартный кусок записи внутреннего сообщения в лог.

 Чаааво? Какой лог? На fd=1 висит сокет, а не файл, и потому там send(2).

> Ничего интересного
> тут нет. Самое интересное - почему сдох слушатель, но этого в трейсе у тебя
> нет.

 Трейс там длинный, и чудесами типа вызова exit(2) из дочернего треда,
 и где там должен быть слушатель вообще непонятно (ведь коннектился он
 к этому сокету не тогда, когда я запустил strace, а несколькими часами
 раньше).

> >  Возможно, этот сокет с fd=1 используется для взаимодействия со своими же
> Это явно результат вызова openlog() где-то внутри syslog().

 Я догадываюсь, но syslogd, вызывающий openlog(), это форменная шиза...
 Ты не считаешь, что автора такого изделия нужно везти в психушку? :)
-- 
 Eugene Berdnikov

Ответить