我有一个用perl编写的守护程序进程,它监听端口8622上的自定义命令。
现在我想编写一个可以使用telnet命令调用守护进程的客户端程序。客户端程序必须根据收到的输出获取输出并进一步处理。
我没有在端口8622上运行的telnet的任何用户名密码。
以下是我的客户端程序代码
#!/usr/bin/perl -wl
use Net::Telnet;
$port = 8622;
$IP = '127.0.0.1';
$cmd = "CSDD"; #command to send
$telnet = new Net::Telnet ( Timeout=>5, port=>$port, Errmode=>'die',Prompt => '/\$ $/i');
$telnet->open($IP);
#$telnet->login('','');
print $telnet->cmd($cmd);
$telnet->close;
exit;
守护程序进程收到命令但它仍然在无限循环中运行,即使没有任何条件检查。
如果我从命令提示符运行telnet,守护进程正常工作。
我希望我用可怜的英语正确解释。 我非常陌生,所以请帮助我。
提前致谢:)
答案 0 :(得分:0)
提示真的是一个美元符号,后跟一个空格吗?尝试使用'/\$ ?$/i'
或其他变体。有print
和waitfor
方法提供了比cmd
更低级别的界面,可能它们会起作用。