telnet 让不能后台运行的程序后台运行 为程序加入假死检测功能
本文原地址: http://www.feitianzhi.com/boke/index.php/archives/5/
转载请注明出处,有疑问或错误请发邮件到xiaozhi@fslib.org 或加QQ群:869598376
Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。
我的理解是Telnet就是一个用tcp建立的一个连接,客户端与服务器之间发送与接收以\r\n结尾(linux以\n为换行符,不用这个做换行符的不用看此文章了)的数据信息,基于此原理,客户端在发送一些特定的二进制信息登录telnet服务器后,再发送要运行的程序文本就可运行自己想要的程序,之后等待服务器发送\r\n回来,收到就表示要运行的程序已死;
基于上述编程原理可实现以下功能:
1,telnet运行程序实质是前台运行,此法可让不能后台运行的程序后台运行;
2,telnet客户端检测到要运行的程序时退出后,自己主动退出,因终端退出后,在此终端运行的所有程序都会退出,可彻底解决那些已退出程序序但在后台假死的问题;
此文章的具体应用在文章:http://www.feitianzhi.com/boke/index.php/archives/4/
附用shell telnet 运行程序的脚本
{
sleep 1
echo "root"
sleep 1
echo "root"
sleep 1
echo "cd /bin"
echo "ls"
sleep 1
while [ 1 ]; do sleep 10; done
echo "exit"
} | telnet 127.0.0.1