当前位置:  技术问答>linux和unix

请教一下究竟是什么原因导致在服务状态daemon下无法调用外界脚本呢?(附测试代码)

    来源: 互联网  发布时间:2015-03-13

    本文导语:  测试代码在 http://boyzxd.myrice.com/daemonhelp.zip 准备: 请建立工作目录 /work/test 然后将这些文件复制进去。 因为脚本sdlk中有写具体的路径名的,如果设置不正确则无法启动服务。 先执行make clean以初始化环境 在执行mak...

测试代码在 http://boyzxd.myrice.com/daemonhelp.zip

准备:
请建立工作目录
/work/test
然后将这些文件复制进去。
因为脚本sdlk中有写具体的路径名的,如果设置不正确则无法启动服务。

先执行make clean以初始化环境
在执行make后,生成srv_test和trigger后,就可以做测试了

文件介绍:
srv_test.c是测试的源代码
trigger.c是测试客户端源代码
sdlk是控制脚本
makefile是编译文件
srv_test是生成的可执行
trigger是用于发送测试数据包,触发服务端动作


1.
以应用程序方式启动:
[root@tsam test]# srv_test& 注释:不带参数时,应以普通应用程序启动
[1] 13585
program started
[root@tsam test]# trigger 注释:发送测试包
recv data package
trigger data sent
[root@tsam test]# Shutting down SMB services:   OK  ] 注释:srv_test成功调用到samba控制脚本重启samba
Shutting down NMB services:   OK  ]
Starting SMB services:   OK  ]
Starting NMB services:   OK  ]
smb should be restarted
[root@tsam test]# ps 注释:测试完毕,准备停掉应用程序
  PID TTY          TIME CMD
 1198 pts/0    00:00:00 login
 1235 pts/0    00:00:00 su
 1236 pts/0    00:00:00 bash
13585 pts/0    00:00:00 srv_test
13615 pts/0    00:00:00 ps
[root@tsam test]# kill 13585 注释:应用程序已给停掉
someone killed me!
[1]+  Done                    srv_test
分析:当srv_test以应用程序方式运行时,能成功调用外界的脚本

2.
以服务daemon方式启动:
输入./sdlk start就可以启动服务,stop就可以停止服务。

在一个控制台中,运行tail -f /var/log/messages以监视系统的服务

在另一个控制台中做测试:
[root@tsam test]#./sdlk start 注释:以服务启动
Starting srv_test:   OK  ]
[root@tsam test]# ./trigger 注释:发送测试包
trigger data sent
[root@tsam test]# ./sdlk stop 注释:停掉服务
Stopping srv_test:   OK  ]

在测试的过程中,我们能看到 用于监视的控制台的输出信息

May  4 11:12:02 TSAM srv_test: program(daemon) started
May  4 11:12:02 TSAM sdlk: srv_test startup succeeded
May  4 11:12:30 TSAM srv_test: recv data package
//May  4 11:08:51 TSAM smb: smbd shutdown succeeded 没有出现
//May  4 11:08:51 TSAM smb: nmbd shutdown succeeded 没有出现
//May  4 11:08:51 TSAM smb: smbd startup succeeded 没有出现
//May  4 11:08:51 TSAM smb: nmbd startup succeeded 没有出现
May  4 11:12:30 TSAM srv_test: smb should be restarted
May  4 11:12:53 TSAM srv_test: someone killed me!
May  4 11:12:53 TSAM sdlk: srv_test shutdown succeeded

上面的时间有点混乱。但也能说明我的意图。
srv_test能成功启动。但当它收到数据包时,试图调用samba脚本以重启samba时却没有成功。
"//"开头的表示应该出现的消息。但它却没有实际出现。
分析:当srv_test以服务(daemon)方式运行时,未能成功调用外界的脚本

问题:
究竟是什么原因而导致在服务状态下无法调用外界脚本呢?
在调用外界脚本时,我测试过了system函数和exec系列函数,均有同样的结果。

请指教,不胜感激啊^_^  http://boyzxd.myrice.com/daemonhelp.zip
祝各位端午节快乐哈~~~~~

|
try this:
char *cmd="your shell command ";
char *argv[]={ "/bin/sh", "-c", cmd, NULL };
exec("/bin/sh",argv);
perror( "Fail to exec():" );

|
这样可能可以:
char *cmd="/etc/init.d/smb restart";
char *argv[]={ "/bin/sh", "-c", cmd, NULL };
exec("/bin/sh",argv);
perror( "Fail to exec():" );

|
跟环境变量有关系么?监控进程是否有些环境变量拿不到。

    
 
 

您可能感兴趣的文章:

  • 请教一个关于bean的调用问题
  • 请教:如何获得系统调用序列?
  • 请教一下在驱动里怎么调用应用程序
  • 请教gcc编程 问题 关于调用中断 实现 图形模式
  • 请教:java中如何调用linux下的静态连接库.a文件?
  • 请教一个定时调用问题
  • 请教在linux中如何动态的增加一个系统调用(模块中)
  • 请教:java中如何调用linux下的静态连接库.a文件?
  • 请教关于execl()调用的问题
  • 请教,JavaScript中能不能调用JSP写的函数?
  • 请教内核高手,抽空解释一下系统中断调用处理流程
  • 请教:系统调用的问题!
  • 请教Linux中调用系统命令问题
  • 请教各位大牛~~那个系统调用open()创建的是什么类型的文件?
  • 高分请教: 如何用Java调用带多个参数的EXE文件?
  • 请教各位,如何在JSP中调用SQL 过程?
  • 请教怎样在application中调用IE?
  • 请教一下,如何在英文FC3中调用输入法输入中文?
  • [虚心请教]为什么x86内核系统调用没有clone2?
  • 请教一个关于PROC中调用存储过程的问题
  • 请教一个问题,CRONTAB执行脚本和SSH登陆后调用脚本有什么不同?
  • 请教花括号在脚本中的用法的含义
  • 请教shell脚本启动程序
  • 高分请教关于Shell脚本执行中断问题?
  • 请教关于多个shell脚本后台运行的问题!
  • 请教:这个脚本文件为什么不随机启动
  • 请教一个脚本编写时的问题
  • 请教:如何写一个自动以当前日期建目录的脚本
  • 请教shell脚本中ls -la >ls.log <<!,中的"<<!"是什么意思?
  • 请教一个查找字符的脚本。急用!!
  • 请教两段shell脚本的不同
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教这种循环的执行过程
  • 请教两个redhat9问题
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教kdevelop的问题
  • 请教linux 下的adsl拨号问题.
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教一个opengl的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3