首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gammu未能发送短信

Gammu未能发送短信
EN

Stack Overflow用户
提问于 2020-05-29 06:48:10
回答 1查看 328关注 0票数 0

如你所知,我对Gammu有意见。我使用Gammu与PRTG网络监视器一起发送SMS,它用于监视网络设备(即服务器、交换机、路由器、防火墙),每当重要的服务发生故障时,PRTG会执行我创建的一些批文件,这些文件通过Gammu调用发送SMS。

但是,每当一个或多个服务发生故障时,一些批处理文件根本不会被执行,我收到以下错误:

错误102错误开启装置。未知、忙或没有权限。

我见过许多与这个问题相关的话题,但我无法通过其中任何一个来解决我的问题。

我已经为Gammu配置了日志,这样无论发生什么事情都会被记录下来。我在这些日志中出现了两个错误:

System error - CreateFile in serial_open,32,“进程无法访问该文件,因为它正被另一个进程使用。" System error - SetCommState in serial_close,6,句柄无效。

我有一个关于第一个错误的问题:“进程无法访问文件,因为它正在被另一个进程使用。”它指的是哪个文件,Gammu还是我的批文件?

下面是我如何设置批处理文件的一个示例:

代码语言:javascript
复制
cd c:\Program Files (x86)\Gammu\bin


Rem User1
gammu sendsms TEXT 0123456789 -text "%*" -report

Rem User2
gammu sendsms TEXT 0123456789 -text "%*" -report

在执行gammu sendsms之前,我尝试了超时机制,但它根本不起作用。你们有什么解决方案,让我如何让执行等待,直到其他进程完成,这样我就不会收到那条消息?

下面是gammuconfig:

代码语言:javascript
复制
[gammu]

device = com4:
connection = at115200
logfile = gammulog
logformat = errors

[gammu1]

device = com3:
connection = at115200
logfile = gammulog
logformat = errors

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2020-06-08 16:33:15

这看起来像是一个进程锁定了发送SMS的整个系统(使用串行端口?)

在这种情况下,您需要重写脚本,使其不是并行发送这些消息,而是按顺序发送这些消息。使用队列是可行的方法。

一种可能是让PRTG执行批处理(或python)脚本,它会将消息添加到队列中。另一个将在循环中运行的进程将从队列中获取新消息并处理它们(发送消息)。这样你就不会不止一次执行Gammu了。这种解决方案的缺点是,如果您有许多警报,则需要更长时间才能发送它们,因为Gammu不支持并行处理

另一种选择是使用一些internet sms网关,它允许您一次发送多条短消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62080201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档