Задача выполняется даже после ее уничтожения

Общий способ сделать это для любого типа файловых систем - bind mount.

В этом примере используется /tmp. Для этого на /sys вы можете заменить /tmp/sysall на /sys:

mkdir /tmp/sysall
mkdir -p /tmp/mychroot/sys/class/gpio

mount -t sysfs sysfs /tmp/sysall/
mount --bind  /tmp/sysall/class/gpio  /tmp/mychroot/sys/class/gpio
umount /tmp/sysall/
1
26.03.2016, 10:39
1 ответ

systemd , вероятно, каким-то образом "потерял контроль" над службой. Это может произойти, если, например, в примере путь к исполняемому файлу изменится. Однако, если процесс возрождается даже после того, как был убит, либо:

  1. systemd все еще контролирует программу с помощью (другой) службы автоматического перезапуска.
  2. Другой демон играет в игру systemd и воспроизводит процесс.

Если мы посмотрим на ваш вывод ps -eaf ...

kibana   20185     1  0 04:28 ?        00:00:03 /opt/kibana/bin/../node/bin/node /opt/kibana/bin/../src/cli

Это даст нам некоторые важные детали:

  • Идентификатор процесса - 20185 .
  • Идентификатор родительского процесса - 1 .

Поскольку PPID равен 1 , мы можем с уверенностью предположить, что здесь ответственным является systemd . Итак, эта команда должна сообщить вам, какой модуль контролирует процесс ...

$ systemctl status 20185

С этого момента вы можете остановить / убить программу.

1
27.01.2020, 23:48

Теги

Похожие вопросы