Выполните код на завершении работы на Fedora 19

При использовании sed Вы не должны использовать наклонные черты вправо для обозначения аргументов поиску/замене. Можно изменить их на что-либо, что Вы хотите. Например:

$ iconv -l|grep ISO | sed 's@//@--@g' | head -5
CSISO4UNITEDKINGDOM--
CSISO10SWEDISH--
CSISO11SWEDISHFORNAMES--
CSISO14JISC6220RO--
CSISO15ITALIAN--

Это может быть сжато, так как Вы ищете тот же символ к этому:

$ iconv -l|grep ISO|sed 's@/@-@g' | head -5
CSISO4UNITEDKINGDOM--
CSISO10SWEDISH--
CSISO11SWEDISHFORNAMES--
CSISO14JISC6220RO--
CSISO15ITALIAN--
4
24.04.2014, 19:15
1 ответ

Сигнал может быть уловлен в процессе работы . Таким образом, если вы запустите долгоживущий процесс (также известный как демон) при загрузке, то вы действительно получите SIGTERM от этого процесса и будете делать все, что захотите от обработчика сигналов. Однако, это худший из возможных способов: дополнительный процесс ничего не делает и просто ждет сигнала.

У вас есть лучшие способы достичь этого, например, с помощью systemd. Файл модуля (foo.service) будет выглядеть следующим образом:

[Unit]
Description=Perform my actions
DefaultDependencies=no
Before=shutdown.target

[Service]
Type=oneshot
ExecStart=/path/to/your/application

Однако, имейте в виду, что из-за параллельной природы systemd этот модуль может быть запущен произвольно поздно в процессе выключения (хотя на это может повлиять тщательное использование зависимостей).

0
27.01.2020, 21:05

Теги

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