热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

自己编写的守护进程开机不能启动

自己编写的守护进程开机不能启动--Linux通用技术-Linux编程与内核信息,下面是详情阅读。
OK,我知道这是一个很古老的话题,请在您鄙视之前给我一个描述问题的机会。我google+百度N久,都没有找到我所碰到的问题的答案,实在搞不懂错在哪里
【要实现的目标】一个开机自动启动并后台运行的程序,该程序每隔几秒钟想某个日志里打印一句话。
【我遇到的问题】开机该程序不能自动启动。但在控制终端上可以手动启动,启动之后能正常运行。
【我的实现】(1)该程序如下:
int main(void)
{
int i = 0;

my_print("enter main!\n");
daemonize();
while(1)
{
my_print("%04d: test\n",i);
i++;
sleep(5);
}
}
其中my_print是自己写的一个写日志函数,原型:int my_print(const char *fmt,...); 该函数将输入的打印信息写到/home/test/info.log 该函数确定正确,并且函数中没有调用过exit。
daemonize函数抄写的APUE上的(但不包括最后可选的syslog部分),确定正确。
程序编译生成的可执行文件名为:dmtest
(2)自己写了一个安装脚本和一个启动脚本
启动脚本(名字为dmboot)内容如下:
#!bin/bash
test -x `which dmtest` || exit 1
killall dmtest> /dev/null 2>&1
dmtest
echo "dmboot start" > /home/test/dmboot.txt
exit 0
安装脚本内容如下:
#!bin/bash
cp -f ./dmtest /usr/bin/
cp -f ./dmboot /etc/init.d
rm -f /etc/rc2.d/S99dmboot
rm -f /etc/rc3.d/S99dmboot
rm -f /etc/rc4.d/S99dmboot
rm -f /etc/rc5.d/S99dmboot
ln -s /etc/init.d/dmboot /etc/rc2.d/S99dmboot>/dev/null 2>&1
ln -s /etc/init.d/dmboot /etc/rc3.d/S99dmboot>/dev/null 2>&1
ln -s /etc/init.d/dmboot /etc/rc4.d/S99dmboot>/dev/null 2>&1
ln -s /etc/init.d/dmboot /etc/rc5.d/S99dmboot>/dev/null 2>&1

【环境描述】
(1)操作系统ubuntu 11.04 内核:2.6.38
(2)/usr/bin/dmtest的属性:-rwxr-xr-x 1 root root ...
/etc/rcX.d/S99dmboot的属性:lrwxrwxrwx 1 root root ... (其中的rcX.d中的X代表2,3,4,5)
/etc/init.d/dmboot的属性:-rwxr-xr-x 1 root root ...

【现状】我开机后,/home/test/dmboot.txt该文件中有dmboot start字符串,说明dmboot是被运行过的,并且dmboot中的dmtest程序也是被运行过的。
但是/home/test/info.log中没有任何信息,感觉好像dmtest程序从来没有运行过一样。
并且ps aux | grep dmtest之后也看不到dmtest程序中运行。

我实在想不出哪个地方出错了,请大家指点一下。
推荐阅读
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 本文介绍了如何在使用emacs时去掉ubuntu的alt键默认功能,并提供了相应的操作步骤和注意事项。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 本文介绍了iOS开发中检测和解决内存泄漏的方法,包括静态分析、使用instruments检查内存泄漏以及代码测试等。同时还介绍了最能挣钱的行业,包括互联网行业、娱乐行业、教育行业、智能行业和老年服务行业,并提供了选行业的技巧。 ... [详细]
author-avatar
123456ws1043
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有