关于Linux下前后台程序的一点疑惑(& , (cmd &), setsid )--- (kafka-stop-server.sh不工作问题)
2015-05-31 09:07
363 查看
前几天启动kafka时一不小心这样操作的: $ (./bin/kafka-start-server.sh &), 后来执行 $ kafka-stop-server.sh 却发现无法停止 kafka进程。
查看kafka-stop-server.sh这个脚本,发现里面末尾用的是 kill -SIGINT pid. 我的理解是 SIGINT只能 kill掉和前台程序在同一个进程组的进程,类似 ctrl+c;而我把kafka启动成了一个非前台进程组的后台进程,因而kill不掉。
顺便查了下资料,目前的理解如下:
以一个 ping程序为例:
<1> $ ping www.baidu.com ===> 开启一个前台程序
<2> $ ping www.sohu.com & ===> 开启一个后台程序,但该后台程序和当前的bash(shell)属于一个进程组, 且属于相同会话(session)
<3> $ (ping www.sohu.com &) ===> 开启一个后台程序,但该后台程序和当前的bash(shell)不是同一个进程组(其父进程pid为1, init), 却属于相同会话(session)
<4> $ setsid ping www.sohu.com ===> 开启一个后台程序,但该后台程序和当前的bash(shell)既不是同一个进程组(其父进程pid为1, init),也不是相同会话(session)
以上结论可以利用 $ ps -l | grep ping 来验证。
有个疑惑是,针对<2>, 如果我通过 kill -9 把 ping程序的父进程,即那个当前bash进程删掉,按道理ping进程是不是该被自动杀掉?可通过测试,我发现<2>中的ping程序最终也被init托管了。请路过同学帮忙指正。
查看kafka-stop-server.sh这个脚本,发现里面末尾用的是 kill -SIGINT pid. 我的理解是 SIGINT只能 kill掉和前台程序在同一个进程组的进程,类似 ctrl+c;而我把kafka启动成了一个非前台进程组的后台进程,因而kill不掉。
顺便查了下资料,目前的理解如下:
以一个 ping程序为例:
<1> $ ping www.baidu.com ===> 开启一个前台程序
<2> $ ping www.sohu.com & ===> 开启一个后台程序,但该后台程序和当前的bash(shell)属于一个进程组, 且属于相同会话(session)
<3> $ (ping www.sohu.com &) ===> 开启一个后台程序,但该后台程序和当前的bash(shell)不是同一个进程组(其父进程pid为1, init), 却属于相同会话(session)
<4> $ setsid ping www.sohu.com ===> 开启一个后台程序,但该后台程序和当前的bash(shell)既不是同一个进程组(其父进程pid为1, init),也不是相同会话(session)
以上结论可以利用 $ ps -l | grep ping 来验证。
有个疑惑是,针对<2>, 如果我通过 kill -9 把 ping程序的父进程,即那个当前bash进程删掉,按道理ping进程是不是该被自动杀掉?可通过测试,我发现<2>中的ping程序最终也被init托管了。请路过同学帮忙指正。
相关文章推荐
- centos 7 安装jdk java: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
- Linux(centos)系统各个目录的作用详解
- Linux字符驱动中动态分配设备号与动态生成设备节点
- Foreign LINUX让你在Windows上运行Linux应用
- Linux vmstat命令实战详解
- linux编程学习2-重要的概念
- 嵌入式软件开发培训笔记——linux进程、线程及进程间通信
- linux编程学习1-列举一个目录下的文件
- 嵌入式软件开发培训笔记——linux标准I/O库
- Linux之内核中的文件系统
- 返璞归真的Linux BFS调度器
- linux screen 命令详解
- Linux多线程编程的条件变量
- Linux多线程编程的条件变量
- Linux之文件系统
- Linux常用命令(更新中)
- ctrl+c,ctrl+d,ctrl+z在linux中意义
- ctrl+c,ctrl+d,ctrl+z在linux中意义
- ffmpeg将amr转成mp3(window和linux环境)
- linux c++ 服务器端开发面试必看书籍