LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1021|回复: 10

sshd开启后,怎么对应两个进程的?

[复制链接]
发表于 2008-11-10 22:51:32 | 显示全部楼层 |阅读模式
-bash-3.2# pgrep sshd
2011
2032
-bash-3.2# ps aex | grep sshd
2011 ?        Ss     0:00 /usr/sbin/sshd CONSOLE=/dev/console TERM=linux INIT_VERSION=sysvinit-2.86 PATH=/bin:/usr/bin:/sbin:/usr/sbin vga=788 RUNLEVEL=3 PWD=/ PREVLEVEL=N HOME=/ SHLVL=2 _=/usr/sbin/sshd
2032 ?        Ss     0:00 sshd: root@pts/0
发表于 2008-11-11 19:42:29 | 显示全部楼层
不明白,问题是什麽?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-11 23:08:30 | 显示全部楼层
Post by d00m3d;1907263
不明白,问题是什麽?

/usr/sbin/sshd
启动的不是一个进程,而是两个,怎么回事?
回复 支持 反对

使用道具 举报

发表于 2008-11-12 06:58:16 | 显示全部楼层
先把所有 sshd 杀掉,重新执行 /usr/sbin/sshd,然後看看 ps aux|grep sshd 的结果是?
回复 支持 反对

使用道具 举报

发表于 2008-11-12 08:40:38 | 显示全部楼层
是否属于多进程服务器?
---
一个是deamon
一个是fock出的新进程,提供服务的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-13 02:56:24 | 显示全部楼层
Post by kilior;1907411
是否属于多进程服务器?
---
一个是deamon
一个是fock出的新进程,提供服务的?

多进程服务器,什么意思?
是初始化脚本的位置问题吗?
/etc/sysinti/rcN.d
和这个N有关系?
回复 支持 反对

使用道具 举报

发表于 2008-11-13 13:01:44 | 显示全部楼层
你用的是什么bootscripts?lfs的bootscript默认装在/etc/rc.d/init.d   LSB的默认在/etc/init.d 怎么会在/etc/sysinti/rcN.d?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-14 12:14:23 | 显示全部楼层
Post by newper;1907967
你用的是什么bootscripts?lfs的bootscript默认装在/etc/rc.d/init.d   LSB的默认在/etc/init.d 怎么会在/etc/sysinti/rcN.d?


写错了,不好意思,
文件在/etc/rc.d/rc3.d/S90sshd
内容为:
# Version     : 00.00
#
# Notes       :
#
########################################################################

. /etc/sysconfig/rc
. ${rc_functions}

case "${1}" in
        start)
                boot_mesg "Starting..."
                /usr/sbin/sshd
                ;;

        stop)
                boot_mesg "Stopping..."
                 /usr/sbin/sshd
                ;;

        reload)
                boot_mesg "Reloading..."
                reloadproc
                /usr/sbin/sshd
                ;;

        restart)
                ${0} stop
                sleep 1
                ${0} start
                ;;

        status)
                statusproc
                ;;

        *)
                echo "Usage: ${0} {start|stop|reload|restart|status}"
                exit 1
                ;;
esac

# End $rc_base/init.d/
回复 支持 反对

使用道具 举报

发表于 2008-11-15 20:48:27 | 显示全部楼层
Post by think365;1907817
多进程服务器,什么意思?
是初始化脚本的位置问题吗?
/etc/sysinti/rcN.d
和这个N有关系?


多进程服务器:一般基于tcp的服务器都是多进程服务器

其中服进程在tcpxx端口listen,
接下来是一个死循环,
在死循环里当代码运行到accept会阻塞,直到有人连接,然后有个判断,连接成功就fock()
这样父进程就能继续accept,而子进程才是真正提供服务。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-17 03:29:51 | 显示全部楼层
Post by kilior;1909049
多进程服务器:一般基于tcp的服务器都是多进程服务器

其中服进程在tcpxx端口listen,
接下来是一个死循环,
在死循环里当代码运行到accept会阻塞,直到有人连接,然后有个判断,连接成功就fock()
这样父进程就能继续accept,而子进程才是真正提供服务。

呵呵,老兄讲解的很有深度。。。
还想问几个问题:

为什么是多进程,而不是多线程?
阻塞的原理是什么?
轮询,信号量,还是中断?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表