父进程会比子进程提早结束,在你子进程取ppid这个时间父进程已经结束了,这个时候相当于子进程变成zombie,会被init收养(这个地方我也不太懂,正常来说应该子进程的ppid是1,说明你的子进程被init之外的进程收养了)阻塞父进程或者while1的作用是不让父进程结束,以便子进程取值的时候父进程依然保留

kill %1这条命令表示杀死一个后台程序,这个后台程序的“工作号码(jobnumber)”是1号。这条命令往往是用在输入如下命令之后:jobs -ljobs用来查看目前的后台工作状态,显示结果里面最前面的数字号就是对应进程的jobnumber,然后就可以用kill %jobnumber的格式来杀死jobnumber对应的后台工作。
在Linux中,`killall`和`kill -9`都是用于终止进程的命令,但它们之间存在一些重要的区别。
1. `killall`命令:`killall`命令用于终止指定进程名字的所有进程。它接受进程名作为参数,而不是进程ID。例如,要终止名为"example"的所有进程,可以使用命令`killall example`。
2. `kill -9`命令:`kill -9`命令用于向指定进程发送强制终止的信号。它需要进程的ID作为参数,而不是进程名。例如,要终止进程ID为123的进程,可以使用命令`kill -9 123`。
- `killall`通过进程名来终止进程,而`kill -9`通过进程ID来终止进程。
- `killall`会终止所有与指定进程名字匹配的进程,可能会导致误杀其他不相关的进程。而`kill -9`只终止指定进程ID的进程。
- `killall`默认发送终止信号SIGTERM(15号信号),可以通过`-s`选项指定其他信号。而`kill -9`固定发送SIGKILL(9号信号),该信号无法被进程捕获或忽略,是一种强制终止信号。
在使用这两个命令时,需要谨慎操作。优先考虑使用`killall`终止进程,只有在必要时才使用`kill -9`进行强制终止。
1. 存在区别2. Linux中的killall命令用于根据进程名杀死所有匹配的进程,而kill -9命令用于强制杀死指定进程ID的进程。 killall命令会发送SIGTERM信号给进程,然后等待一段时间,如果进程没有正常退出,则会发送SIGKILL信号强制杀死进程。 而kill -9命令直接发送SIGKILL信号给进程,不会等待进程做任何处理,直接强制杀死进程。 因此,killall命令更加安全,可以给进程一定的时间来处理退出操作,而kill -9命令则是一种强制手段,可能会导致进程异常退出或数据丢失。3. 除了killall和kill -9命令外,Linux还有其他的kill命令选项,如kill -15命令会发送SIGTERM信号给进程,让进程自行处理退出操作,kill -2命令会发送SIGINT信号给进程,模拟键盘中断信号,kill -1命令会发送SIGHUP信号给进程,通常用于重新加载配置文件。根据具体的需求和情况,选择合适的kill命令选项可以更好地管理和控制进程。