linux命令guard,Linux Guard Service - 守护进程的作用、用途、父进程标识的特点

###让test2直接成为守护进程

[root@localhost 02]# cat test2.c

//test2

#include

#include

#include

#include

#include

int main(){

if(daemon(1,1)==-1){

perror("daemon error");

exit(EXIT_FAILURE);

}

int i=0;

while(1){

FILE *fd=fopen("test2.log","a");

fprintf(fd,"%d 1552227\n",i++);

sleep(1);

fclose(fd);

}

return 0;

}

[root@localhost 02]#

执行test2后生成了test2.log文件,不断更新的test2.log表示其在不断运行

32 1552227

33 1552227

34 1552227

35 1552227

36 1552227

37 1552227

38 1552227

39 1552227

40 1552227

[root@localhost 02]#

退出当前终端,(此时不再提示有进行中的任务)启用新终端,再观察test2.log

37 1552227

38 1552227

39 1552227

40 1552227

41 1552227

42 1552227

43 1552227

44 1552227

[root@localhost 02]#

发现程序依然在正常执行

使用

ps -xf

查看所有守护进程

2761 ? Sl 0:00 \_ /usr/libexec/evolution-addressbook-factory-subpr

2766 ? Sl 0:00 /usr/libexec/ibus-x11 --kill-daemon

2837 ? Sl 0:00 /usr/libexec/gvfsd-network --spawner :1.4 /org/gtk/g

2852 ? Sl 0:00 /usr/libexec/gvfsd-dnssd --spawner :1.4 /org/gtk/gvf

9158 ? Ss 0:00 ./test2

9187 ? Sl 0:00 /usr/sbin/abrt-dbus -t133

[root@localhost 02]#

./test2是顶级进程,没有父进程(不同于之前的以-bash作为父进程)

在进程中打印信息,可以使用向log输出的方法,但是注意几点

写文件每次都要close,否则是写不进去的

要对程序写日志加以控制,否则会产生上GB的文本日志,多个写日志程序同时运行可能会宕机系统

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值