| GAMMU-SMSD(1) | Gammu | GAMMU-SMSD(1) |
نام (NAME)
gammu-smsd - دیمن پیامک برای گامو (Gammu)
خلاصه دستور (SYNOPSIS)
gammu-smsd [OPTION]...
توضیحات (DESCRIPTION)
این صفحه راهنما بهطور خلاصه دستور gammu-smsd را شرح میدهد.
دستور gammu-smsd برنامهای است که بهصورت دورهای مودم GSM را برای پیامهای دریافتشده پویش میکند، آنها را در حافظه مشخصشده ذخیره مینماید و همچنین پیامهای قرارگرفته در صف این حافظه را ارسال میکند.
این دیمن میتواند پس از دریافت سیگنال قطع ارتباط (SIGHUP) فایل پیکربندی را مجدداً بارگذاری کند و در پاسخ به SIGINT و SIGTERM بهطور مناسب خاتمه یابد.
این برنامه گزینههای زیر را میپذیرد (توجه داشته باشید که گزینههای طولانی ممکن است در برخی پلتفرمها پذیرفته نشوند):
- -h, --help
- نمایش راهنما.
- -v, --version
- نمایش اطلاعات نسخه و قابلیتهای کامپایلشده.
- -c, --config=file
- فایل
پیکربندی
مورد
استفاده؛
پیشفرض /etc/gammu-smsdrc
است. در
ویندوز هیچ
پیشفرضی
وجود ندارد
و مسیر فایل
پیکربندی
باید
همواره
مشخص شود.
اگر SMSD را بهعنوان یک دیمن سیستمی (یا سرویس) اجرا میکنید، توصیه میشود از مسیر مطلق برای فایل پیکربندی استفاده نمایید، زیرا دایرکتوری آغاز به کار ممکن است با آنچه انتظار دارید متفاوت باشد.
برای مستندات فایل پیکربندی، به SMSD Configuration File <#gammu-smsdrc> مراجعه کنید.
- -p, --pid=file
- فایل قفل جهت ذخیره pid؛ خالی بودن به معنای عدم قفلگذاری است. در ویندوز پشتیبانی نمیشود.
- -U, --user=user
- کاهش مجوزهای دیمن به کاربر انتخابشده پس از شروع به کار.
- -G, --group=group
- کاهش مجوزهای دیمن به گروه انتخابشده پس از شروع به کار.
- -d, --daemon
- اجرای برنامه در قالب دیمن پسزمینه هنگام راهاندازی. در ویندوز پشتیبانی نمیشود.
- -i, --install-service
- نصب SMSD بهعنوان یک سرویس ویندوز.
- -u, --uninstall-service
- حذف نصب SMSD از سرویسهای ویندوز.
- -s, --start-service
- شروع به کار سرویس ویندوز SMSD.
- -k, --stop-service
- متوقف کردن سرویس ویندوز SMSD.
- -f, --max-failures=count
- خاتمه برنامه پس از تعداد مشخصی از خرابیها. از 0 برای عدم خاتمه استفاده کنید (پیشفرض).
- -X, --suicide=seconds
- بستن و پایان دادن خودکار برنامه پس از تعداد ثانیههای مشخصشده.
- -S, --run-service
- اجرای برنامه بهعنوان سرویس ویندوز SMSD. این گزینه نباید بهصورت دستی استفاده شود، بلکه تنها مدیر سرویسهای ویندوز (Windows Service Manager) باید از این دستور استفاده کند.
- -n, --service-name=name
- تعیین نام سرویس ویندوز. هر سرویس نیازمند یک نام یکتا است؛ بنابراین اگر میخواهید چندین نمونه SMSD را اجرا کنید، باید برای هر سرویس نام متفاوتی برگزینید. پیشفرض "GammuSMSD" است.
- -l, --use-log
- استفاده از ثبت وقایع (لاگگیری) طبق تنظیمات فایل پیکربندی (پیشفرض).
- -L, --no-use-log
- عدم استفاده از ثبت وقایع طبق تنظیمات فایل پیکربندی.
- -e, --install-event-log
- نصب
توضیحات EventLog
ویندوز در
رجیستری.
افزوده شده در نسخه 1.31.90.
- -E, --uninstall-event-log
- حذف نصب
توضیحات EventLog
ویندوز از
رجیستری.
افزوده شده در نسخه 1.31.90.
سیگنالها (SIGNALS)
دیمن SMSD را میتوان با استفاده از سیگنالهای POSIX زیر کنترل کرد (در صورتی که پلتفرم شما پشتیبانی کند):
- SIGHUP
- بارگذاری مجدد پیکربندی و اتصال مجدد به تلفن.
- SIGINT, SIGTERM
- خاتمه دادن تمیز و ایمن (Graceful shutdown) به دیمن.
- SIGALRM
- استفاده داخلی برای gammu-smsd -X https://docs.python.org/3.9/using/cmdline.html#id5
- SIGUSR1
- تعلیق فعالیت SMSD و بستن اتصال به تلفن و پایگاهداده.
- SIGUSR2
- از سرگیری فعالیت SMSD (پس از تعلیق قبلی).
تغییر یافته در نسخه 1.22.91: پشتیبانی از SIGHUP اضافه شد.
تغییر یافته در نسخه 1.22.95: پشتیبانی از SIGALRM اضافه شد.
تغییر یافته در نسخه 1.31.90: پشتیبانی از SIGUSR1 و SIGUSR2 اضافه شد.
مثالها (EXAMPLES)
مثالهای لینوکس/یونیکس
شروع به کار SMSD بهعنوان یک دیمن در لینوکس:
gammu-smsd --config /etc/gammu-smsdrc --pid /var/run/gammu-smsd.pid --daemon
شروع به کار SMSD بهعنوان یک دیمن در لینوکس با دسترسیهای تقلیلیافته:
gammu-smsd --config /etc/gammu-smsdrc --pid /var/run/gammu-smsd.pid --daemon --user gammu --group gammu
SMSD بهعنوان یک دیمن سراسری سیستم
برای استفاده از SMSD بهعنوان یک دیمن، ممکن است بخواهید از اسکریپت init موجود در پوشه contrib/init همراه Gammu استفاده کنید. این اسکریپت بهطور پیشفرض نصب نمیشود؛ یا آن را دستی نصب کنید یا فایل INSTALL را برای راهنما ببینید.
در ویندوز ۷ ممکن است لازم باشد قبل از نصب سرویس SMSD، قابلیت کنترل حساب کاربری (UAC) را غیرفعال کنید.
مثالهای سرویس ویندوز
نصب سرویس ویندوز Gammu SMSD:
gammu-smsd.exe -c c:\Gammu\smsdrc -i
نصب دو نمونه از سرویس ویندوز SMSD:
gammu-smsd.exe -c c:\Gammu\smsdrc-1 -n Gammu-first-phone -i gammu-smsd.exe -c c:\Gammu\smsdrc-2 -n Gammu-second-phone -i
حذف نصب سرویس ویندوز:
gammu-smsd.exe -u
عیبیابی سرویس ویندوز
اگر Gammu نتواند بهعنوان یک سرویس ویندوز اجرا شود (معمولاً خطای "Error 1053: The service did not respond to the start or control request in a timely fashion" دریافت میشود)، ابتدا لاگهای SMSD را بررسی کنید. اگر راهنمایی مفیدی نداشتند، اجرای دستی SMSD را دقیقاً با همان پارامترهایی که سرویس را نصب کردهاید (بدون -i) آزمایش کنید.
برای مثال خط فرمان میتواند به این شکل باشد:
gammu-smsd.exe -c smsdrc
اکنون باید بتوانید خطاهای SMSD را مشاهده کنید، حتی اگر نتواند بهعنوان سرویس شروع به کار کند.
فراخوانی Gammu و تعلیق SMSD
از آنجا که نمیتوانید Gammu و Gammu SMSD را همزمان روی یک دستگاه اجرا کنید، میتوانید این محدودیت را با تعلیق موقت SMSD با استفاده از سیگنالهای SIGUSR1 و SIGUSR2 برطرف کنید (بخش سیگنالها را نیز ببینید):
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
یا حتی یک اسکریپت gammu-safe ایجاد کنید:
#!/bin/bash
SMSD_PID=`pidof gammu-smsd`
if [ -z "$SMSD_PID" ] ; then
gammu $@
else
tty=$(lsof |grep -E "gammu-sms\s+$SMSD_PID\s+.*/dev/tty*"|awk {'print $NF'})
kill -SIGUSR1 $SMSD_PID
while test "$(fuser $ttyfuser $tty 2> /dev/null|xargs)" = $SMSD_PID
do
sleep 1
done
sleep 1
gammu $@
kill -SIGUSR2 $SMSD_PID
while test "$(fuser $ttyfuser $tty 2> /dev/null|xargs)" != $SMSD_PID
do
sleep 1
done
sleep 1
fi
محدودیتهای شناختهشده (KNOWN LIMITATIONS)
نمیتوانید از یک تلفن بهطور همزمان توسط چند برنامه استفاده کنید. با این حال در صورتی که قفلگذاری را در بخش [gammu] <#section-[gammu]> فعال نکرده باشید، ممکن است ارتباط با تلفن از برنامههای دیگر آغاز شود. در این حالت احتمالاً هیچیک از برنامهها کار نخواهند کرد؛ بخش «فراخوانی Gammu و تعلیق SMSD» را برای راهکار جایگزین ببینید.
هیچ راهی برای تشخیص اینکه آیا یک پیامک پاسخی به پیامک دیگر است با نگاه کردن به هدرهای پیام وجود ندارد. تنها راه دستیابی به این کار، افزودن یک توکن به پیام و درخواست از کاربر برای گنجاندن آن هنگام پاسخ است.
نویسندگان (AUTHORS)
Michal Čihař <michal@cihar.com>
حق نشر (COPYRIGHT)
2009-2015, Michal Čihař <michal@cihar.com>
| February 9, 2026 | 1.43.2 |