上述问题可以转化为一个通用的问题:如何让一个 daemon 进程输出日志到当前的控制台上?
另外,supervisor 及 docker 在启动的时候,是不允许启动后台进程的,这是为什么呢?
在解答之前,先来看一些相关的基础知识。
查看一个进程的 pid,gpid,spid,command
上述命令打印 32036 号进程,父进程为 1098,进程组号为 32036,会话号为 32036。
打印前台进程组的进程信息。
查看进程树。
上面的程序实现了一个简单的 daemonize 例程。有以下一些地方还没有考虑到:
写一个简单的 shell 程序进行测试:
编译运行,注意现在的工作路径为 /,可执行局慎程序要写绝对路径。
查看进程:
可以看到 daemon 进程 pid 为 30467, 其父进程为 init 进程,组长为 30466,为会话首进程,session id 也是 30466。
可以 tailf test.log 查看日志输出。
配置redis作为守护进程运行# 默认情况下 redis 不是作为守护进程运行的没纳,如果你想让它在后台运行,没察正你就把配置文件里
daemonize
改成 yes。
# 当redis作为守护进程运行的时候枯悔,它会写一个 pid 到 /var/run/redis.pid 文件里面。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)