在某些情况下,FreeBSD也会向应用软件发送信号。
有两个信号可以停止进程:SIGTERM 和 SIGKILL。 SIGTERM比较友好,进程能捕捉这个信号,
对于SIGKILL信号,进程是不能忽略的。 这是一个 '“我不管您在做什么,立刻停止”'的信号。 假如您发送SIGKILL信号给进程, FreeBSD就将进程停止在那里。[4].
您可能会去使用 SIGHUP、 SIGUSR1 和 SIGUSR2信号。 这都是些通用的信号,
假如您改变了web系统的配置文件──
发送信号可用kill(1) 命令,请参考kill(1)所列出的例子。
发送一个信号给进程
这个例子显示了怎样去发一个信号给inetd(8)。 inetd配置文件是/etc/inetd.conf, 如果想inetd 去重读文件系统的话,可以给它发一个SIGHUP 信号。
1.
寻找您要发送信号的进程ID,可以用ps(1) 加 grep(1)来完成。 grep(1)命令被用在搜索输出方面,搜索您指定的字符串。
% ps -ax | grep inetd
198 ?? IWs 0:00.00 inetd -wW
得出 inetd(8) PID号是198。有时 grep inetd 命令也出现在输出中, 这是因为在这方面 ps(1) 也是寻找列表中运行进程。
2.
使用 kill(1) 去发送信号。因为 inetd(8) 是由 root启动的, 您必须使用 su(1) 去 变为 root 用户。
% su
Password:
# /bin/kill -s HUP 198
和大多数 UNIX 命令一样, kill(1) 如果完成了任务, 就不会给出任何消息。 假如您发送信号给一个不属于您的进程, 您会看到 “kill: PID: Operation not permitted”. 假如输错了PID号,把信号发送到其他进程,那是坏事。
"发送一个信号给进程"
- FreeBSD 使用手册 (view on Google Sidewiki)
No comments:
Post a Comment