Как заставить процесс ожидать в фоновом режиме и смочь быть уничтоженным сигналом кроме УНИЧТОЖЕНИЯ

SystemCTL не является вашим домогом. Это даже не процесс, который появляется Ваш домон. Это программа, которая говорит о процессе службы менеджера для создания вашего Dæmon через RPC на рабочем столе.

SOSHCTL SystemCTL ничего не знает о аргументах командной строки, переданной на ваш DEMON.

Это в файле сервисного блока DæMON , MySQLD.Service , которые вы упоминаете, чье местоположение дается

systemctl status mysqld.service

, вам нужно изменить службу execstart Установка, в частности. Вот разные способы сделать это:

  1. Скопируйте пакет MySQLD.Service к вашему местному /etc/systemd/system/mysqld.service Файл сервисного блока. Это имеет недостаток не отслеживания обновлений от пакета.
  2. Сделайте /etc/systemd/system/mysqld.service.d/skip-slave.conf Файл файл, который переопределяет просто execstart . Участок Systemd.Unit Ручная страница объясняет их.
  3. Отредактируйте поставляемую поставляемую MySQLD.Service Сервисный блок службы. Это просто не системный способ. Администраторы не должны передавать вещи, которые поставляются пакетами.
  4. Следуйте детальным инструкциям, приведенным по линиям от 1 до 18 , поставляемых CentOS файл MySQLD.Service , которые объясняют, как использовать .include в этих обстоятельства.

Конечно, не забывайте

systemctl daemon-reload

-1
10.04.2015, 13:02
1 ответ

Если под «не сработало, как ожидалось» вы имеете в виду, что вы написали обработчик SIGTERM, и он не сработал для SIGTERM, вы сделали ошибка в вашем коде .

Вот рабочий пример:

#!/bin/bash

cleanup () {
        echo "goodbye!"
        exit 0
}

trap 'cleanup' SIGTERM

while sleep 1; do
        echo $BASHPID
done

Реагирует, как ожидалось, на kill -SIGTERM . Вы можете использовать любой сигнал, кроме, как вы уже знаете, SIGKILL и SIGSTOP.

1
28.01.2020, 05:11

Теги

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