он плодит еще кучку потомков, для надежности запустил вот так: strace -e open,write,close -o t-d.strace transmission-daemon \ --config-dir=.config/transmission-daemon/ -ep \ -e /var/log/transmission.log --log-error -f выхлоп в аттаче. ничерта интересного. в лог пишет несчастную одну строчку. шыштемд у меня нету, в syslog пару раз "closing session" выдал при остановке.
однако же, поигрался тут еще по-всякому и нашел вот какую вещь: если запустить strace -p 5363,5364,5365,5385 -c &> stats получаем примерно по одному fsync в секунду (см. файл stats) далее, при логе в /var/log/transmission: srv> ~$ strace -p 5363,5364,5365,5385 -e fsync -t strace: Process 5363 attached strace: Process 5364 attached strace: Process 5365 attached strace: Process 5385 attached [pid 5363] 00:01:18 fsync(3) = 0 [pid 5363] 00:01:20 fsync(3) = 0 [pid 5363] 00:01:21 fsync(3) = 0 [pid 5363] 00:01:22 fsync(3) = 0 [pid 5363] 00:01:23 fsync(3) = 0 [pid 5363] 00:01:24 fsync(3) = 0 ну и так далее, каждую секунду он зовется и успешно синкает бедный диск. [1] если же лог направить в /dev/null, общая картина та же, за исключением того, что все эти fsync'и завершаются с ошибкой: srv> ~$ strace -p 11226 -e fsync -t strace: Process 11226 attached 00:09:30 fsync(3) = -1 EINVAL (Invalid argument) 00:09:31 fsync(3) = -1 EINVAL (Invalid argument) 00:09:32 fsync(3) = -1 EINVAL (Invalid argument) 00:09:33 fsync(3) = -1 EINVAL (Invalid argument) 00:09:34 fsync(3) = -1 EINVAL (Invalid argument) 00:09:35 fsync(3) = -1 EINVAL (Invalid argument) вот она где собака порылась! таким образом, имеем вот что: если лог-файл у нас на диске, то бешеная программа каждую секунду упорно синкает этот самый диск! /dev/null тоже пытается упорно синкать, но ему все равно)) видимо, где-то в коде, отвечающем за ведение логов, должно было быть что-то типа: раз в секунду сбрасываем некий буфер (или как его правильно) в лог-файл и синкаем диск, только из-за ошибки оно синкается независимо от того, писали мы в файл или нет. [1] http://man7.org/linux/man-pages/man2/fsync.2.html 2017-087 15:58 Tim Sattarov <sti...@gmail.com> wrote: > я бы проверил ещё strace'ом, что он пишет и куда > strace -e write -p `pidof transmission-daemon` > и вот сюда ещё: > journalctl -u transmission-daemon.service > > у меня transmission-daemon из тестинга: > > # apt-cache policy transmission-daemon > transmission-daemon: > Installed: 2.92-2 > Candidate: 2.92-2 > Version table: > *** 2.92-2 500 > 500 https://cloudfront.debian.net/debian unstable/main amd64 > Packages > 400 https://cloudfront.debian.net/debian testing/main amd64 Packages > 100 /var/lib/dpkg/status > > > весь запуск и опции управляются через systemd: > > [Unit] > Description=Transmission BitTorrent Daemon > After=network.target > > [Service] > User=debian-transmission > Type=notify > ExecStart=/usr/bin/transmission-daemon -f --log-error > ExecStop=/bin/kill -s STOP $MAINPID > ExecReload=/bin/kill -s HUP $MAINPID > > [Install] > WantedBy=multi-user.target > >
t-d.strace
Description: Binary data
stats
Description: Binary data