社区
Linux/Unix社区
帖子详情
高分请教: linux下如何写服务程序
sunshine_djh
2005-04-04 08:37:57
写了个守护进程,但不知道怎样把这个程序添到服务列表里去,请问要怎么才能到服务列表里去,要写code还是在哪个地方配置以下?
...全文
635
24
打赏
收藏
高分请教: linux下如何写服务程序
写了个守护进程,但不知道怎样把这个程序添到服务列表里去,请问要怎么才能到服务列表里去,要写code还是在哪个地方配置以下?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
slone
2005-04-06
打赏
举报
回复
后面的数字 当然不需要相同,只是个加载顺序而已
运行级别是对整个系统而言的,针对应用程序不是,可以看看这里
http://www.tongyi.net/article/20020412/200204123250.shtml
如果你是图形登录,运行级是5 ,所以配置可以这样改
ln -s /usr/src/MyServer /etc/rc5.d/S98MyServer
ln -s /usr/src/MyServer /etc/rc0.d/K99MyServer
sunshine_djh
2005-04-06
打赏
举报
回复
感谢各位,我现在已经基本清楚了,马上结贴给分
watcher_shen
2005-04-06
打赏
举报
回复
嗯,楼主的问题这几位回答的都已经很全面了……
qfxx
2005-04-06
打赏
举报
回复
nohup是告诉系统忽略用户退出系统
让进程运行直到进程结束为止
比如我在远程打开ssh终端运行程序./server
如果不用nohup当我关闭ssh终端时
./server进程将会中止
使用nohup ./server &
可以在用户退出终端时
进程能继续执行
brothersun0116
2005-04-06
打赏
举报
回复
学习学习……
Wolf0403
2005-04-06
打赏
举报
回复
一般系统的运行级别是在 /etc/inittab 里面指定的。有一行是类似
id:5:initdefault:
或者
id:3:initdefault:
的,这里的数字就是系统的默认运行级别。假设是 5。
启动服务的是依靠 /etc/init.d/ 下的脚本启动的。这些都是普通的 shell 脚本,系统在调用的时候,如果是启动服务,则传入 start 作为参数;stop 表示停止;restart 表示重启。因此你可以写一个脚本,比如简单的如这样:
#!/bin/sh
ARG=$1
case $ARG in
start):
nohup /path/to/your/program &
;;
stop):
pkill program
;;
restart):
pkill program
nohup /path/to/your/program &
;;
esac
把这个脚本放在 /etc/init.d 里面,譬如 /etc/init.d/your_prog
然后加入相应运行级别的链接:在 5 级启动则
ln -s /etc/init.d/your_prog /etc/rc5.d/S100your_prog
ln -s /etc/init.d/your_prog /etc/rc0.d/K100your_prog
这里两个数字都可以用对应目录里最大的数字,因为没有别的服务依赖你的服务。
这样表示,当系统进入 init level 5 的时候启动你的程序,进入 init level 0 的时候停止你的程序。
sunshine_djh
2005-04-05
打赏
举报
回复
yindesheng() and slone(slone):
假设我的程序名字叫MyServer,位于/usr/src/,是否应该用以下命令
ln -s /usr/src/MyServer /etc/rc3.d/S98MyServer
ln -s /usr/src/MyServer /etc/rc0.d/K99MyServer
为什么要在rc3下选择S98,为什么不是S99或K98?
rc0下的K99后面的数字怎么不跟S98后面的数字一致呢
还有,我用这两个命令生成的S98MyServer和K99MyServer是乱码呀
sunshine_djh
2005-04-05
打赏
举报
回复
另外一个问题
我生成了守护进程,怎么一调用一个.so里的函数都不成功,因为我用ps -A看不到我的程序
sunshine_djh
2005-04-05
打赏
举报
回复
谢谢 qfxx(秋风萧萧),我试了下这个命令,连一般的程序也可以让它在后台运行。只运行 ./server & 也可以呀,nohup的作用是什么呢
我用
ln -s ~/dd /etc/rc3.d/S98dd
ln -s ~/dd /etc/rc0.d/K99dd
生成的S98dd和S99dd文件怎么是乱码,而我看到系统中已有的却不是乱码
qfxx
2005-04-05
打赏
举报
回复
假设你的程序名字为server
运行守护进程如下
nohup ./server &
nohup把程序放到后台运行 要与&配对使用
sunshine_djh
2005-04-05
打赏
举报
回复
slone,请问一下怎么设置守护进程的运行级别呢,我用fork做的守护进程,还有对于同一程序而言,S和K后面的数字是否要求必须相同?
谢谢!
slone
2005-04-05
打赏
举报
回复
ln -s /usr/src/MyServer /etc/rc3.d/S98MyServer
ln -s /usr/src/MyServer /etc/rc0.d/K99MyServer
上面两条命令写后服务列表里没有我的MyServer
还要看你的运行级别,这个例子是说在运行级别3时启动。
slone
2005-04-05
打赏
举报
回复
ln -s /usr/src/MyServer /etc/rc3.d/S98MyServer
ln -s /usr/src/MyServer /etc/rc0.d/K99MyServer
S98 和K99 只是举了两个例子,一般而言守护进程都是S、K + 2位数字+程序名的,命名规则而已,2位数字你得看对应文件夹中有不用没用的数字,就可以了,最好不要重复,这个是加载的顺序,LN 只是创建了一个连接,系统启动时会自动调用创建的链接的。
sunshine_djh
2005-04-05
打赏
举报
回复
ln -s /usr/src/MyServer /etc/rc3.d/S98MyServer
ln -s /usr/src/MyServer /etc/rc0.d/K99MyServer
上面两条命令写后服务列表里没有我的MyServer
更改/etc/rc.local倒是简单,但这个文件里只有一句话:
touch /var/lock/subsys/local
我要是要把我的MyServer程序加进去怎么写呢,格式是什么样子的呢
这两种方法有什么区别呢
watcher_shen
2005-04-05
打赏
举报
回复
“我用这两个命令生成的S98MyServer和K99MyServer是乱码呀” ——这是两个连接而已,正常。
“而我看到系统中已有的却不是乱码”——有些是,有些不是。这取决于它是否就是在这个位置开始自己的程序。
那些不是的本身就是程序了。
sunshine_djh
2005-04-05
打赏
举报
回复
高手们,现有的/etc/rc.local只有一句话:
touch /var/lock/subsys/local
我要是要把我的MyServer程序加进去怎么写呢,格式是什么样子的呢
rocketliu8899
2005-04-05
打赏
举报
回复
加到/etc/rc下的rc.local文件里即可,reboot后看效果
是的
itsmewhy
2005-04-05
打赏
举报
回复
加到/etc/rc.local文件里即可,reboot后看效果
ssli
2005-04-05
打赏
举报
回复
加到/etc/rc下的rc.local文件里即可,reboot后看效果
yindesheng
2005-04-04
打赏
举报
回复
slone(slone):我看到rc3.d rc0.d下有好多文件,怎么样才能生成诸如S98dd, K99dd这样的文件?是要自己一句一句的写吗?
能不能劳驾从头告诉我怎么写?我是菜鸟
----------------------------------------------------------------
用下面的命令生成:
ln -s ~/dd /etc/rc3.d/S98dd
ln -s ~/dd /etc/rc0.d/K99dd
加载更多回复(4)
Linux
下设备驱动
本讲主要概述
Linux
设备驱动框架、驱动程序的配置文件及常用的加载驱动程序的方法;并且介绍Red Hat
Linux
安装程序是如何加载驱动的,通过了解这个过程, 我们可以自己将驱动程序放到引导盘中;安装完系统后,使用kudzu自动配置硬件程序。
Linux
设备驱动概述1. 内核和驱动模块操作系统是通过各种驱动程序来驾驭硬件设备,它为用户屏蔽了各种各样的设备,驱动硬件是操作系统最基本的功能,并且提
linux
编译驱动模块必要条件,
高分
请教
编译内核详细步骤
本人没有编译过内核,现在使用的是redhat9。0想学习如何编译内核,网上查了一些资料,感觉不是很全,希望哪位高手能给我一个切实可用的编译内核的详细步骤。我的机子没有软驱,因此担心内核编译坏之后没有办法恢复,所以希望一定是很详细的步骤,分数不够还可以加。另外,我好像把我的机子上的源代码搞丢了一部分。在哪里下载最新的内核源代码。还有就是能不能把redhat9的内核升级为最新的内核2.6请高手指教,不...
写
给程序猿的把妹指南
写
给程序猿的把妹指南:概述篇 每个女人都是一套系统 每个女人,都是一套复杂的系统,只不过,这套系统不是由程序员创造的,而是由大自然进化而成的。大部分程序猿不太懂得如何泡妞,是因为你不熟悉女人这套系统,也没人教过你如何学习这套系统。本指南将给你提供指引,让你开始了解女人这套系统,并指引你如何征服这套系统的方法和道路。 我们知道,操作系统分
Linux
、Windows、OS X、A
Linux
c socket编程
当前位置:编程语言>c/c++
Linux
c socket编程:简单的客户端(client)和服务端(server)实现 分享到: ...
26.5th C/
Linux
短期班 一点分享与感受+部分爆照
王道:赠人玫瑰,手留余香。 我是19考研学生,在备考期间复习408的用书就是王道全家桶。不得不说,王道书的序言和训练营的介绍,很好的打了一波硬广告,哈哈哈。 我参加的是c/
linux
元旦短期班,听说是王道第一次开这种短期班,宣传上说,是为了给考研复试增色,如面试、简历和机试笔试。接近2个月的授课,也确实达到了这一点。短期班在考研刚初试完不久就开始了,对于经历了痛苦备考阶段的同...
Linux/Unix社区
23,124
社区成员
74,508
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章