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