臆病がCPUのコアを1つ占有して実行している

臆病がCPUのコアを1つ占有して実行している

これまで 2 回 (数週間ほど間隔をあけて)、コンピューターをスリープ状態から起動すると、Timidity が突然起動しました。コアの 1 つですべての処理能力が消費され、約 5 分から 10 分間実行されています。このプロセスが起動する理由を知りたいです。

実行中 では、pstreeプロセスが の直接の子孫として表示されるので、の起動に責任があるsystemdと思われますが、 を起動した構成を検索する方法がわかりません。systemdtimiditytimidity

straceプロセスを実行すると、次のようになります。

ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0
poll([{fd=6, events=POLLIN}], 1, 0)     = 0 (Timeout)
ioctl(6, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, 0x16c83e0) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x7fff43107780) = 0
ioctl(4, SNDRV_PCM_IOCTL_HWSYNC, 0x3cd407d5) = 0

そのプロセスによって開かれるファイルは次のとおりです。

/dev/null
/dev/snd/timer
/dev/snd/pcmC0D0p
/dev/snd/controlC0
/dev/snd/seq

実行されたコマンドラインは次のとおりです。

/usr/bin/timidity-Os-iAD

最後の 3 つの情報は から取得されます/proc/$PID/

そこで、なぜ実行されているのかをどうやって調べればよいのかを尋ねますtimidity(1 つのコアすべてを占有している理由の問題については、後で取り組みます)。

答え1

 cat /run/systemd/generator.late/timidity.service
# Automatically generated by systemd-sysv-generator

[Unit]
SourcePath=/etc/init.d/timidity
Description=LSB: start and stop timidity
Before=runlevel2.target runlevel3.target runlevel4.target runlevel5.target shutdown.target
After=remote-fs.target
Conflicts=shutdown.target

[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
SysVStartPriority=1
ExecStart=/etc/init.d/timidity start
ExecStop=/etc/init.d/timidity stop

systemd-unitはsystemdによって動的に生成されます。起動を防ぐには、chkconfigリンクを使用するか削除します/etc/rc2.d/S01timiditychkconfig --del timidity

関連情報