免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2248 | 回复: 1
打印 上一主题 下一主题

Linux下自定义服务启动失败的问题求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-18 21:59 |只看该作者 |倒序浏览
用C++编写了一个小工具,想让工具随操作系统启动。采用将该程序注册成系统服务的方式来实现。

编译选项:
g++  -fPIC -g -D_REENTRANT -I"/opt/ACE_wrappers" -c  -o "services.o" services.cpp
g++  -fPIC -g -D_REENTRANT -I"/opt/ACE_wrappers" -L"." -L"./" services.o -lACE -ldl -lrt -lpthread -o "servicetest"


使用:
chkconfig --add命令添加,设置启动级别为3和5。

但是由于程序依赖另外一个共享库,操作系统启动时,自定义的服务总是报加载动态库失败。手动使用service命令启动服务的时候也抱同样的错误。

# service sertest start
./servicetest: error while loading shared libraries: libACE-5.6.9.so: cannot open shared object file: No such file or directory


sertest文件的内容:
  1. 30 RETVAL=0
  2. 31
  3. 32 FTP_MON_SVR=/etc/init.d/ftpmoniter
  4. 33 FTP_MON_IMP=/tools/ftpmoniter/ftpmoniter.sh
  5. 34
  6. 35 start ()
  7. 36 {
  8. 37   cd /myprogs/servicetest/
  9. 38   ./servicetest &
  10. 39 }
  11. 40
  12. 41 stop ()
  13. 42 {
  14. 43   killall servicetest
  15. 44 }
  16. 45 case "$1" in
  17. 46   start)
  18. 47   start
  19. 48   ;;
  20. 49
  21. 50   stop)
  22. 51   stop
  23. 52   ;;
  24. 53
  25. 54   restart)
  26. 55   stop
  27. 56   start
  28. 57   ;;
  29. 58
  30. 59   *)
  31. 60   echo "usage: ftpmoniter start|stop|restart"
  32. 61
  33. 62 esac
  34. 63
  35. 64 exit $RETVAL
复制代码
使用:
/etc/init.d/sertest start
却可以正常启动。

不知道该如何解决

论坛徽章:
0
2 [报告]
发表于 2010-07-19 10:51 |只看该作者
编译的时候-L项指定绝对路径.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP