UNIX基础--进程和守护进程

进程和守护进程

Processes and Daemons

进程(Processes)

FreeBSD 是一个多任务操作系统。 这就意味着好像一次可以运行一个以上的程序。 每个占用一定时间运行的程序就叫 进程 (process)。 你运行的每一个命令会至少启动一个新进程,还有很多一直运行着的系统进程, 用以维持系统的正常运作。
每个进程用来标识的一个编号就叫 进程ID(PID)。而且,就像文件那样,每个进程也有所属用户和所属组。 所属用户和所属组使用在这方面:确定这个进程可以打开那些文件和那些设备, 从而在初期使用文件的权限。 多数的进程都有一个父进程, 而进程是依靠父进程来启动的。 例如,假如您把命令输入到shell里那shell是一个进程,而您运行的各个命令同样是进程, 那么,shell就是您各个运行进程的父进程。 而这方面有一个例外的进程就叫initinit是系统启动时第一个启动的进程,所以他的PID始终是1, 而init在FreeBSD起动时由内核自动启动。

查看系统上运行的进程,有两个命令非常有用:pstop
ps命令作用是以静态列表显示当前运行进程, 显示PID,占用内存,它们启动的命令行。而top命令则是显示所有运行进程,并在以秒计的短时内更新数据,目的是交互地查看计算机正在运行的任务。

ps最有用的一个选项就是auxww。a选项显示出所有运行进程的内容, 而不仅仅是您的进程。u选项显示出进程所归属的用户名字以及内存使用,x选项显示出后台进程。 而ww选项表示为 ps 把每个进程的整个命令行全部显示完, 而不是由于命令行过长就把它从屏幕上截去。

守护进程(Daemons)

一些程序在运行中不需要连续的用户输入,一有机会就从终端里分离到后台去。我们把那些程序叫 守护进程。
守护进程的程序命名有一个惯例,在最后加一个 “d”。 BIND 是伯克利互联网域名服务 (而实际执行的程序名称则是 named), Apache web server的程序就叫 httpd, 在行式打印机上的打印守护进程就是 lpd。

  • 杀死进程( Killing Processes)
    有时可能会需要与进程进行通讯。 而 信号 则是其中的一种通讯机制。 可以发送信号给进程来与它进行通信, 不同的信号都有自己的数字编号,其中一些有特殊的含义, 其它的则可以被应用程序自己进行解释。
    有两个信号可以停止进程:SIGTERM 和 SIGKILL。

你可能感兴趣的:(UNIX基础--进程和守护进程)