用kylix如何编写守护进程?(100分)

  • 主题发起人 5rain6sky
  • 开始时间
5

5rain6sky

Unregistered / Unconfirmed
GUEST, unregistred user!
我原来有一个在win2000下跑的后台服务程序,用的是Delphi的TService控件。
现在要把它移植到linux下,问题如下:
一、linux下与windows里的Service地位同等的是否为守护进程?如果不是,是哪(几)种程序?
二、守护进程(或其它类似程序)与linux下的一般程序有什么不同?编程要点是什么?
三、用kylix怎么实现?
本人初次接触linux下的编程工作,希望各位能不厌其详,谢了先!
 
守护进程也称精灵进程,是生存期长的一种进程。它们常常在系统引导装入时起动,在系统
关闭时终止。因为它们没有控制终端,所以说它们是在后台运行的。UNIX系统有很多精灵进
程,它们执行日常事物活动。它们没有父进程ID,没有组进程ID,也没有对话期ID。
至于它的编程方法也很简单,可以参看一些UNIX编程方面资料。
 
tfnmao: 你是在M$工作吧?呵呵。
 
to tfnmao,更正你一点,守护进程并不是精灵进程
守护进程是在后台运行的,但是他仍然存在控制终端,当控制终端退出时,会发送一个信号给这个进程,
从而终止进程的运行,要想将一个守护进程转变为精灵进程,必须将其转化为对话期首进程,在UNIX下,
是用系统调用setsid()实现的,setsid有三个作用:
1。使调用进程成为新对话期首进程
2。使调用进程成为一个新的进程组的首进程
3。使调用进程没有控制终端
于是一个新的精灵进程诞生了!!!!!
 
感谢tfnmao和tompage!
but,有没有kylix下具体如何实现的资料或提示?
 
做守护进程这种东西就不要用kylix了,用c吧,其实很简单的:
主要是甩开终端控制、脱离对话过程和进程组等等
switch (fork())
{
case -1://Error
default : //Exit 1st parent
exit(0);
case 0:
.......
.....
...
}
 
好象Kylix目前不支持
 
谢谢Chenlili,不过我们暂时没有打算用C,实在不行再用吧。
to duanyu:
能不能确定?你要能找到资料确定说Kylix不支持守护进程的编写,我就不瞎忙活了。
to All:
Kylix不能用的话,如果用Java如何实现?
 
sorry,我好象看到介绍这方面的资料,好象Kylix目前不支持,但不能完全确定,你看下www.borland.com
 
kylix对glibc的调用:
uses libc;
begin
if (libc.fork())==-1 then
.....
end;

用kylix开一个console程序trytry
 
非常关注!
 
唉,这段时间忙着windows下的程序,linux连进都没进过了:(
Chenlili的方法也没试,不过我比较喜欢有代码的答案:)
 
顶部