сценарий в/lib/systemd/system-sleep/удаленном, но все еще работает

Я записал, что сценарий, за которым будут бежать, приостанавливает, (сценарий был в/lib/systemd/system-sleep/каталоге), но после теста я решил удалить его оттуда, но сценарий все еще работает - я знаю это, потому что сценарий имел, уведомляют - отправляют в нем, и теперь каждый раз, когда я бужу свой ноутбук, я вижу, что уведомления открываются. Как это возможно и как я могу полностью удалить его?

1
задан 11 July 2018 в 20:03

1 ответ

Необходимо работать

sudo systemctl daemon-reload

после удаления сценария.

После тестирования этого самостоятельно оказывается, что перезагрузка демона недостаточно. Даже systemctl daemon-reexec не помогает. Таким образом, единственный способ избавиться от под управлением сценария, кажется, перезагрузка или уничтожение процесса вручную.

Объяснение, почему это возможно: нормально на Linux, что можно удалить сценарий, в то время как это работает. То, что действительно происходит, - то, что запись каталога удалена (файл становится "невидимым"), но этого не стало действительно только после того, как все процессы закрыли открытые дескрипторы файлов для этого файла.

Можно протестировать это поведение как это:

$ printf "#!/bin/sh\nsleep 10000" >/tmp/bla
$ chmod +x /tmp/bla
$ /tmp/bla &; rm /tmp/bla
[1] 5959
$ ls -l /tmp/bla
ls: cannot access '/tmp/bla': No such file or directory

Вы будете видеть, что сценария не стало, но все еще работающий, пока Вы не уничтожаете его процесс.

2
ответ дан 7 December 2019 в 13:23

Другие вопросы по тегам:

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