#sms #daemon #gammu
#sms #демон #gammu
Вопрос:
Мне нужно выполнять переадресацию вызовов (перенаправление) на SIM-карту, которая постоянно используется демоном gammu sms. Операция переадресации может выполняться несколько раз в день. Демон Gammu sms поддерживает связь с GSM-модемом 24 часа в сутки. Я не могу отправить какую-либо команду AT на порт, пока демон запущен. Инструмент Gammu (не демон) имеет готовые к использованию команды для переадресации вызовов, и они отлично работают, пока демон остановлен. Конечно, когда демон выполняет команду, правильно заявляет, что порт занят.
Есть ли какой-либо способ аккуратно вводить AT-команды в gammu-smsd и читать ответ?
Моя идея состоит в том, чтобы: 1. Остановить демона. 2. Выполните переадресацию вызова, прочитайте результат 3. Запустите демон, но эта идея не выглядит как умное или элегантное решение.
Если ввод команд в демон sms невозможен, есть ли какой-нибудь щадящий способ остановить демона, не убивая процесс? Я не хочу прерывать работу демона, пока он отправляет SMS.
Ответ №1:
Вы можете использовать SIGUSR1 и SIGUSR2 для приостановки и возобновления работы демона, а также использовать командную строку Gammu во время приостановки работы SMSD.
Для получения дополнительной информации см. Документацию Gammu SMSD Signals. Для этого есть даже пример:
SMSD_PID=`pidof gammu-smsd`
if [ -z "$SMSD_PID" ] ; then
echo "Failed to figure out SMSD PID!"
else
kill -SIGUSR1 $SMSD_PID
gammu identify
kill -SIGUSR2 $SMSD_PID
fi