守护进程daemon

守护进程

[定义]

       守护进程(daemon),在UNIX或其他多任务操作系统中在后台长期不间断运行的程序。通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统引导装入时启动,在系统关闭时终止。

[附加说明]

1 linux系统在启动时会启动很多进程(例如:init进程,等待用户登录的进程login,等待FTP客户连接的vsftpd等)。这些进程向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。


通常按照服务类型分类,守护进程可以分为如下两类:
系统守护进程:如atd, cron, lpd, syslogd, login等

网络守护进程:如sshd, httpd, sendmail, xinetd等


守护进程有两种运行方式:
  • 独立运行的守护进程
       独立运行的守护进程由init脚本负责管理
       独立运行的守护进程的脚本存放在/etc/init.d/目录下
       所有的系统服务都是独立运行的。如:cron, syslogd等
  • 由超级服务器运行的守护进程

[守护进程的启用和终止]

在服务器运行期间,可以随时启用和停止守护进程。另外,当修改了守护进程的配置文件之后,也要重新启动守护进程。启用和终止有两种方法:
1 直接在/etc/init.d/目录下的脚本管理守护进程
# /etc/init.d/daemon-name  start|stop|restart|reload
2 使用service命令
# service daemon-name start|stop|restart|reload

[查看守护进程树]

可以使用pstree命令查看系统的守护进程树。以我的ubuntu12.04为例。
$ pstree

init-+-NetworkManager-+-dhclient
     |                |-dnsmasq
     |                `-2*[{NetworkManager}]
     |-accounts-daemon---{accounts-daemon}
     |-acpid
     |-at-spi-bus-laun---2*[{at-spi-bus-laun}]
     |-atd
     |-avahi-daemon---avahi-daemon
     |-bamfdaemon---2*[{bamfdaemon}]
     |-bluetoothd
     |-chromium-browse-+-chrome-sandbox---chromium-browse---chromium-browse-+-2*[chromium-browse---4*[{chromium-browse}]]
     |                 |                                                    `-7*[chromium-browse---3*[{chromium-browse}]]
     |                 |-chromium-browse
     |                 |-chromium-browse---17*[{chromium-browse}]
     |                 |-chromium-browse---6*[{chromium-browse}]
     |                 `-36*[{chromium-browse}]
     |-colord---2*[{colord}]
     |-console-kit-dae---64*[{console-kit-dae}]
     |-cron
     |-cupsd---dbus
     |-2*[dbus-daemon]
     |-dbus-launch
     |-dconf-service---2*[{dconf-service}]
     |-gconfd-2
     |-geoclue-master
     |-6*[getty]
     |-gnome-keyring-d---6*[{gnome-keyring-d}]
     |-gnome-terminal-+-bash---pstree
     |                |-gnome-pty-helpe
     |                `-4*[{gnome-terminal}]
     |-goa-daemon---{goa-daemon}
     |-goldendict---7*[{goldendict}]
     |-gvfs-afc-volume---{gvfs-afc-volume}
     |-gvfs-fuse-daemo---3*[{gvfs-fuse-daemo}]
     |-gvfs-gdu-volume
     |-gvfs-gphoto2-vo
     |-gvfsd
     |-gvfsd-burn
     |-gvfsd-metadata
     |-gvfsd-trash
     |-hud-service---3*[{hud-service}]
     |-indicator-appli---{indicator-appli}
     |-indicator-datet---2*[{indicator-datet}]
     |-indicator-messa---{indicator-messa}
     |-indicator-print---2*[{indicator-print}]
     |-indicator-sessi---2*[{indicator-sessi}]
     |-indicator-sound---2*[{indicator-sound}]
     |-irqbalance
     |-lightdm-+-Xorg
     |         |-lightdm-+-gnome-session-+-bluetooth-apple---2*[{bluetooth-apple}]
     |         |         |               |-compiz-+-sh---gtk-window-deco---2*[{gtk-window-deco}]
     |         |         |               |        `-4*[{compiz}]
     |         |         |               |-deja-dup-monito---2*[{deja-dup-monito}]
     |         |         |               |-gdu-notificatio---2*[{gdu-notificatio}]
     |         |         |               |-gnome-fallback----2*[{gnome-fallback-}]
     |         |         |               |-gnome-screensav---2*[{gnome-screensav}]
     |         |         |               |-gnome-settings--+-syndaemon
     |         |         |               |                 `-3*[{gnome-settings-}]
     |         |         |               |-lightdm-session
     |         |         |               |-nautilus---2*[{nautilus}]
     |         |         |               |-nm-applet---2*[{nm-applet}]
     |         |         |               |-polkit-gnome-au---2*[{polkit-gnome-au}]
     |         |         |               |-ssh-agent
     |         |         |               |-telepathy-indic---2*[{telepathy-indic}]
     |         |         |               |-update-notifier---3*[{update-notifier}]
     |         |         |               |-zeitgeist-datah---{zeitgeist-datah}
     |         |         |               `-3*[{gnome-session}]
     |         |         `-{lightdm}
     |         `-2*[{lightdm}]
     |-mission-control---2*[{mission-control}]
     |-modem-manager
     |-polkitd---{polkitd}
     |-pulseaudio-+-gconf-helper
     |            `-2*[{pulseaudio}]
     |-rsyslogd---3*[{rsyslogd}]
     |-rtkit-daemon---2*[{rtkit-daemon}]
     |-sshd
     |-ubuntu-geoip-pr---2*[{ubuntu-geoip-pr}]
     |-udevd---2*[udevd]
     |-udisks-daemon-+-udisks-daemon
     |               `-2*[{udisks-daemon}]
     |-unity-applicati---2*[{unity-applicati}]
     |-unity-files-dae---2*[{unity-files-dae}]
     |-unity-lens-vide---{unity-lens-vide}
     |-unity-music-dae---{unity-music-dae}
     |-unity-musicstor---{unity-musicstor}
     |-unity-panel-ser---3*[{unity-panel-ser}]
     |-unity-scope-vid---2*[{unity-scope-vid}]
     |-upowerd---2*[{upowerd}]
     |-upstart-socket-
     |-upstart-udev-br
     |-whoopsie---{whoopsie}
     |-wpa_supplicant
     |-zeitgeist-daemo---{zeitgeist-daemo}
     `-zeitgeist-fts-+-cat
                     `-{zeitgeist-fts}

[介绍几个常见的守护进程]

1时钟同步守护进程
网络时钟同步可以使用网络时间协议(Network Time Procotol  NTP)实现。NTP协议的目的是在Internet上传递统一,标准的时间。常用于同步的应用。具体的实现方案是在网络上指定若干个时钟源网站,为用户提供授时服务,并且这些网站间能改相互比对,提高准确度。
具体的实现请常看相关的NTP协议手册
一般使用的同步网站是http://www.pool.ntp.org/en/,里面有中国的。

2 安全登录守护进程OpenSSH
SSH(Secure SHell)协议是C/S模式协议,即区分客户端和服务器端。一次成功的SSH会话需要两端的通力合作来完成。OpenSSH使用非对称密钥的RSA和DSA认证协议来认证用户。其过程是:
(1)本地主机使用ssh客户命令告诉远程主机的sshd守护进程,想使用RSA/DSA认证协议登录
(2)远程主机的sshd守护进程会生成一个随机数,并使用存储于该机器上的公钥对这个随机数进行加密
(3)远程主机的sshd守护进程把加密了的随机数发回给正在本地主机上运行的ssh客户
(4)本地主机的ssh客户使用密钥对中的私钥对这个随机数进行解密后,再把它发回给远程主机的sshd的守护进程。
(5)远程主机的sshd守护进程进行判断,若密钥对匹配,则允许登录。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值