|
进程管理: Linux 进程管理 作者:北南南北 来自:LinuxSir.Org 摘要:本文讲述的时进程管理的基本概念和进程管理工具介绍;文中的重点对进程管理工具的分类介绍及应用举例,包括 ps、pgrep、top 、kill、pkill、killall、nice和renice 等工具。 目录 1、程序和进程; 1.1 进程分类; 1.2 进程的属性; 1.3 父进程和子进程; 2、进程管理; 2.1 ps 监视进程工具; 2.1.1 ps参数说明; 2.1.2 ps 应用举例; 2.2 pgrep 3、终止进程的工具 kill 、killall、pkill、xkill; 3.1 kill 3.2 killall 3.3 pkill 3.4 xkill 4、top 监视系统任务的工具; 4.1 top 命令用法及参数; 4.2 top 应用举例; 5、进程的优先级: nice和renice; 6、关于本文; 7、后记; 8、参考文档; Array、相关文档; ++++++++++++++++++++++++++++++++++++++ 正文 ++++++++++++++++++++++++++++++++++++++ 1、程序和进程; 程序是为了完成某种任务而设计的软件,比如OpenOffice是程序。什么是进程呢?进程就是运行中的程序。 一个运行着的程序,可能有多个进程。 比如 LinuxSir.Org 所用的WWW服务器是apache服务器,当管理员启动服务后,可能会有好多人来访问,也就是说许多用户来同时请求httpd服务,apache服务器将会创建有多个httpd进程来对其进行服务。 1.1 进程分类; 进程一般分为交互进程、批处理进程和守护进程三类。 值得一提的是守护进程总是活跃的,一般是后台运行,守护进程一般是由系统在开机时通过脚本自动激活启动或超级管理用户root来启动。比如在 Fedora或Redhat中,我们可以定义httpd 服务器的启动脚本的运行级别,此文件位于/etc/init.d目录下,文件名是httpd,/etc/init.d/httpd 就是httpd服务器的守护程序,当把它的运行级别设置为3和5时,当系统启动时,它会跟着启动。 [root@localhost ~]# chkconfig --level 35 httpd on 由于守护进程是一直运行着的,所以它所处的状态是等待请求处理任务。比如,我们是不是访问 LinuxSir.Org ,LinuxSir.Org 的httpd服务器都在运行,等待着用户来访问,也就是等待着任务处理。 1.2 进程的属性; 进程ID(PID):是唯一的数值,用来区分进程; 父进程和父进程的ID(PPID); 启动进程的用户ID(UID)和所归属的组(GID); 进程状态:状态分为运行R、休眠S、僵尸Z; 进程执行的优先级; 进程所连接的终端名; 进程资源占用:比如占用资源大小(内存、CPU占用量); 1.3 父进程和子进程; 他们的关系是管理和被管理的关系,当父进程终止时,子进程也随之而终止。但子进程终止,父进程并不一定终止。比如httpd服务器运行时,我们可以杀掉其子进程,父进程并不会因为子进程的终止而终止。 在进程管理中,当我们发现占用资源过多,或无法控制的进程时,应该杀死它,以保护系统的稳定安全运行; 2、进程管理; 对于Linux进程的管理,是通过进程管理工具实现的,比如ps、kill、pgrep等工具; 2.1 ps 监视进程工具; ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用top工具; 2.1.1 ps 的参数说明; ps 提供了很多的选项参数,常用的有以下几个; l 长格式输出; u 按用户名和启动时间的顺序来显示进程; j 用任务格式来显示进程; f 用树形格式来显示进程; a  ,(全讯网地址www.2233126.com)显示所有用户的所有进程(包括其它用户); x 显示无控制终端的进程; r 显示运行中的进程; ww 避免详细参数被截断; 我们常用的选项是组合是aux 或lax,还有参数f的应用; ps aux 或lax输出的解释; USER 进程的属主; PID 进程的ID; PPID 父进程; %CPU 进程占用的CPU百分比; %MEM 占用内存的百分比; NI 进程的NICE值,数值大,表示较少占用CPU时间; VSZ 进程虚拟大小; RSS 驻留中页的数量; WCHAN TTY 终端ID STAT 进程状态 D Uninterruptible sleep (usually IO) R 正在运行可中在队列中可过行的; S 处于休眠状态; T 停止或被追踪; W 进入内存交换(从内核2.6开始无效); X 死掉的进程(从来没见过); Z 僵尸进程; ps001.txt [root@localhost ~]# more ps001.txt 这里是把所有进程显示出来,并输出到ps001.txt文件,然后再通过more 来分页查看; 实例二:和grep 结合,提取指定程序的进程; [root@localhost ~]# ps aux |grep httpd root 4187 0.0 1.3 24236 10272 ? Ss 11:55 0:00 /usr/sbin/httpd apache 418Array 0.0 0.6 24368 4Array40 ? S 11:55 0:00 /usr/sbin/httpd apache 41Array0 0.0 0.6 24368 4Array32 ? S 11:55 0:00 /usr/sbin/httpd apache 41Array1 0.0 0.6 24368 4Array32 ? S 11:55 0:00 /usr/sbin/httpd apache 41Array2 0.0 0.6 24368 4Array32 ? S 11:55 0:00 /usr/sbin/httpd apache 41Array3 0.0 0.6 24368 4Array32 ? S 11:55 0:00 /usr/sbin/httpd apache 41Array4 0.0 0.6 24368 4Array32 ? S 11:55 0:00 /usr/sbin/httpd apache 41Array5 0.0 0.6 24368 4Array32 ? S 11:55 0:00 /usr/sbin/httpd apache 41Array6 0.0 0.6 24368 4Array32 ? S 11:55 0:00 /usr/sbin/httpd root 4480 0.0 0.0 5160 708 pts/3 R+ 12:20 0:00 grep httpd 实例二:父进和子进程的关系友好判断的例子 [root@localhost ~]# ps auxf |grep httpd root 4484 0.0 0.0 5160 704 pts/3 S+ 12:21 0:00 \_ grep httpd root 4187 0.0 1.3 24236 10272 ? Ss 11:55 0:00 /usr/sbin/httpd apache 418Array 0.0 0.6 24368 4Array40 ? S 11:55 0:00 \_ /usr/sbin/httpd apache 41Array0 0.0 0.6 24368 4Array32 ? S 11:55 0:00 \_ /usr/sbin/httpd apache 41Array1 0.0 0.6 24368 4Array32 ? S 11:55 0:00 \_ /usr/sbin/httpd apache 41Array2 0.0 0.6 24368 4Array32 ? S 11:55 0:00 \_ /usr/sbin/httpd apache 41Array3 0.0 0.6 24368 4Array32 ? S 11:55 0:00 \_ /usr/sbin/httpd apache 41Array4 0.0 0.6 24368 4Array32 ? S 11:55 0:00 \_ /usr/sbin/httpd apache 41Array5 0.0 0.6 24368 4Array32 ? S 11:55 0:00 \_ /usr/sbin/httpd apache 41Array6 0.0 0.6 24368 4Array32 ? S 11:55 0:00 \_ /usr/sbin/httpd 这里用到了f参数;父与子关系一目了然; 2.2 pgrep pgrep 是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。在服务器的配置和管理中,这个工具常被应用,简单明了; 用法: #ps 参数选项 程序名 常用参数 -l 列出程序名和进程ID; -o 进程起始的ID; -n 进程终止的ID; 举例: [root@localhost ~]# pgrep -lo httpd 4557 httpd [root@localhost ~]# pgrep -ln httpd 4566 httpd [root@localhost ~]# pgrep -l httpd 4557 httpd 4560 httpd 4561 httpd 4562 httpd 4563 httpd 4564 httpd 4565 httpd 4566 httpd [root@localhost ~]# pgrep httpd 4557 4560 4561 4562 4563 4564 4565 4566 3、终止进程的工具 kill 、killall、pkill、xkill; 终止一个进程或终止一个正在运行的程序,一般是通过 kill 、killall、pkill、xkill 等进行。比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具。 另外应用的场合就是在服务器管理中,在不涉及数据库服务器程序的父进程的停止运行,也可以用这些工具来终止。为什么数据库服务器的父进程不能用这些工具杀死呢?原因很简单,这些工具在强行终止数据库服务器时,会让数据库产生更多的文件碎片,当碎片达到一定程度的时候,数据库就有崩溃的危险。比如 mysql服务器最好是按其正常的程序关闭,而不是用pkill mysqld 或killall mysqld 这样危险的动作;当然对于占用资源过多的数据库子进程,我们应该用kill 来杀掉。 3.1 kill kill的应用是和ps 或pgrep 命令结合在一起使用的; kill 的用法: kill [信号代码] 进程ID 注:信号代码可以省略;我们常用的信号代码是 -Array ,表示强制终止; 举例: [root@localhost ~]# ps auxf |grep httpd root 4Array3Array 0.0 0.0 5160 708 pts/3 S+ 13:10 0:00 \_ grep httpd root 4830 0.1 1.3 24232 10272 ? Ss 13:02 0:00 /usr/sbin/httpd apache 4833 0.0 0.6 24364 4Array32 ? S 13:02 0:00 \_ /usr/sbin/httpd apache 4834 0.0 0.6 24364 4Array28 ? S 13:02 0:00 \_ /usr/sbin/httpd apache 4835 0.0 0.6 24364 4Array28 ? S 13:02 0:00 \_ /usr/sbin/httpd apache 4836 0.0 0.6 24364 4Array28 ? S 13:02 0:00 \_ /usr/sbin/httpd apache 4837 0.0 0.6 24364 4Array28 ? S 13:02 0:00 \_ /usr/sbin/httpd apache 4838 0.0 0.6 24364 4Array28 ? S 13:02 0:00 \_ /usr/sbin/httpd apache 483Array 0.0 0.6 24364 4Array28 ? S 13:02 0:00 \_ /usr/sbin/httpd apache 4840 0.0 0.6 24364 4Array28 ? S 13:02 0:00 \_ /usr/sbin/httpd 我们查看httpd 服务器的进程;您也可以用pgrep -l httpd 来查看; 我们看上面例子中的第二列,就是进程PID的列,其中4830是httpd服务器的父进程,从4833-4840的进程都是它4830的子进程;如果我们杀掉父进程4830的话,其下的子进程也会跟着死掉; [root@localhost ~]# kill 4840 注:杀掉4840这个进程; [root@localhost ~]# ps -auxf |grep httpd 注:查看一下会有什么结果?是不是httpd服务器仍在运行? [root@localhost ~]# kill 4830 注:杀掉httpd的父进程; [root@localhost ~]# ps -aux |grep httpd 注:查看httpd的其它子进程是否存在,httpd服务器是否仍在运行? 对于僵尸进程,可以用kill -Array 来强制终止退出; 比如一个程序已经彻底死掉,如果kill 不加信号强度是没有办法退出,最好的办法就是加信号强度 -Array ,后面要接杀父进程;比如; [root@localhost ~]# ps aux |grep gaim beinan 5031 Array.0 2.3 104ArrayArray6 17484 ? S 13:23 0:01 gaim root 5036 0.0 0.0 5160 724 pts/3 S+ 13:24 0:00 grep gaim 或 [root@localhost ~]# pgrep -l gaim 5031 gaim [root@localhost ~]# kill -Array 5031 3.2 killall killall 通过程序的名字,直接杀死所有进程,咱们简单说一下就行了。 用法:killall 正在运行的程序名 killall 也和ps或pgrep 结合使用,比较方便;通过ps或pgrep 来查看哪些程序在运行; 举例: [root@localhost beinan]# pgrep -l gaim 2Array7Array gaim [root@localhost beinan]# killall gaim 3.3 pkill pkill 和killall 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill 来杀掉。 应用方法: #pkill 正在运行的程序名 举例: [root@localhost beinan]# pgrep -l gaim 2Array7Array gaim [root@localhost beinan]# pkill gaim 3.4 xkill xkill 是在桌面用的杀死图形界面的程序。比如当firefox 出现崩溃不能退出时,点鼠标就能杀死firefox 。当xkill运行时出来和个人脑骨的图标,哪个图形程序崩溃一点就OK了。如果您想终止xkill ,就按右键取消; xkill 调用方法: [root@localhost ~]# xkill 4、top 监视系统任务的工具; 和ps 相比,top是动态监视系统任务的工具,top 输出的结果是连续的; 4.1 top 命令用法及参数; top 调用方法: top 选择参数 参数: -b 以批量模式运行,但不能接受命令行输入; -c 显示命令行,而不仅仅是命令名; -d N 显示两次刷新时间的间隔,比如 -d 5,表示两次刷新间隔为5秒; -i 禁止显示空闲进程或僵尸进程; -n NUM 显示更新次数,然后退出。比如 -n 5,表示top更新5次数据就退出; -p PID 仅监视指定进程的ID;PID是一个数值; -q 不经任何延时就刷新; -s 安全模式运行,禁用一些效互指令; -S 累积模式,输出每个进程的总的CPU时间,包括已死的子进程; 交互式命令键位: space 立即更新; c 切换到命令名显示,或显示整个命令(包括参数); f,F 增加显示字段,或删除显示字段; h,? 显示有关安全模式及累积模式的帮助信息; k 提示输入要杀死的进程ID,目的是用来杀死该进程(默人信号为15) i 禁止空闲进程和僵尸进程; l 切换到显法负载平均值和正常运行的时间等信息; m 切换到内存信息,并以内存占用大小排序; n 提示显示的进程数,比如输入3,就在整屏上显示3个进程; o,O 改变显示字段的顺序; r 把renice 应用到一个进程,提示输入PID和renice的值; s 改变两次刷新时间间隔,以秒为单位; t 切换到显示进程和CPU状态的信息; A 按进程生命大小进行排序,最新进程显示在最前; M 按内存占用大小排序,由大到小; N 以进程ID大小排序,由大到小; P 按CPU占用情况排序,由大到小 S 切换到累积时间模式; T 按时间/累积时间对任务排序; W 把当前的配置写到~/.toprc中; 4.2 top 应用举例; [root@localhost ~]# top 然后根据前面所说交互命令按个尝试一下就明白了,比如按M,就按内存占用大小排序;这个例子举不举都没有必要了。呵。。。。。。 当然您可以把top的输出传到一个文件中; [root@localhost ~]# top > mytop.txt 然后我们就可以查看mytop文件,足球直播,以慢慢的分析系统进程状态; 5、进程的优先级:nice和renice; 在Linux 操作系统中,进程之间是竟争资源(比如CPU和内存的占用)关系。这个竟争优劣是通过一个数值来实现的,也就是谦让度。高谦让度表示进程优化级别最低。负值或0表示对高优点级,对其它进程不谦让,也就是拥有优先占用系统资源的权利。谦让度的值从 -20到1Array。 目前硬件技术发展极速,在大多情况下,不必设置进程的优先级,除非在进程失控而疯狂占用资源的情况下,我们有可能来设置一下优先级,但我个人感觉没有太大的必要,在迫不得已的情况下,我们可以杀掉失控进程。 nice 可以在创建进程时,为进程指定谦让度的值,进程的优先级的值是父进程SHELL的优先级的值与我们所指定谦让度的相加和。所以我们在用nice设置程序的优先级时,所指定数值是一个增量,并不是优先级的绝对值; nice 的应用举例: [root@localhost ~]# nice -n 5 gaim & 注:运行gaim程序,并为它指定谦让度增量为5; 所以nice的最常用的应用就是: nice -n 谦让度的增量值 程序 renice 是通过进程ID(PID)来改变谦让度,博彩网,进而达到更改进程的优先级。 renice 谦让度 PID renice 所设置的谦让度就是进程的绝对值;看下面的例子; [root@localhost ~]# ps lax |grep gaim 4 0 4437 341Array 10 -5 120Array24 204Array2 - S>/var/log/cron 2>&1 如果想让立即让cron重启生效,也可以用下面的办法; [root@localhost ~]# pgrep crond 注:查看crond服务器是否运行; 2022 [root@localhost ~]# pkill crond 注:杀死crond; [root@localhost ~]# pgrep crond 注:查看crond是否退出; [root@localhost ~]# /usr/sbin/crond 注:启动crond; [root@localhost ~]# pgrep crond 注:查看crond 是否已经运行得起来了; 3883 2.2.3 关于同一时间,同时执行多个任务的定义方法; 我们在前面已经说过,在全局性配置文件中,有类似如下的段落; 1 * * * * root run-parts /etc/cron.hourly 注:表示每个小时的第一分钟,开始执行/etc/hourly目录下的可执行程序或脚本; 2 4 * * * root run-parts /etc/cron.daily 注:表示每天的4点2分,开始执行/etc/cron.daily目录下的可执行程序或脚本; 22 4 * * 7 root run-parts /etc/cron.weekly 注:每年第7个周4点我22分,开始执行 /etc/cron.weekly目录下的可执行程序或脚本; 42 4 1 * * root run-parts /etc/cron.monthly 注:每月第1天的4点42分,开始执行/etc/cron.monthly目录下的可执行程序或脚本; 举例来说,我想在每天5点10分来重新启动httpd 服务器,与此同时,我们也可以同时下载一个ISO文件。如果我们按书写计划任务的规则一条一条的来书写,并添加到全局是有点麻烦。不如写一个脚本放在 /etc/crond.daily目录中。然后把其权限设置为755 (关于权限的设置,请参考:《Linux 文件和目录的属性》)。 当然我们得改一改上面的 带有/etc/cron.daily那行,改为如下; 10 5 * * * root run-parts /etc/cron.daily 然后我们到/etc/crond.daily目录中创建两个文件,一个是用来重启httpd服务器的,如下; [root@localhost cron.daily]# touch httpd.sh [root@localhost cron.daily]# chmod 755 httpd.sh [root@localhost cron.daily]# echo "/etc/init.d/httpd restart" > httpd.sh [root@localhost cron.daily]# more httpd.sh /etc/init.d/httpd restart 如果我想在每天5点20分下载FC5的镜像,可以再创建一个文件fc5down.sh [root@localhost cron.daily]# touch fc5down.sh [root@localhost cron.daily]# chmod 755 fc5down.sh [root@localhost cron.daily]# echo "/usr/bin/wget http://mirrors.kernel.org/fedora/core/5/i386/iso/FC-5-i386-DVD.iso" > fc5down.sh [root@localhost cron.daily]# more fc5down.sh /usr/bin/wget http://mirrors.kernel.org/fedora/core/5/i386/iso/FC-5-i386-DVD.iso 然后我们重新启动一下crond就行了; [root@localhost cron.daily]# pkill crond [root@localhost cron.daily]# prep crond [root@localhost cron.daily]# crond& 注意:我只是想说明一下,在同一时间执行多个计划任务的简单用法,并不是有意教给您每天早上都下载FC5的映像。我举这个例子是为了初学者了解这url that high a. www.2233126.com ,only pay功能。如果您有好多的任务在某一时刻执行,那就自己写脚本文件。放在/etc目录下的cron.hourly 、cron.daily 、cron.weekly 、cron.monthly 目录中。凡是放进这些目录的可执行脚本,都能在约定的时间内准确执行。每个目录有每个目录的用途; 2.2.4 对于用户自身的cron 配置文件的说明; 每个用户都有自己的cron配置文件,通过crontab -e 就可以编辑,一般的情况下,在Fedora和Redhat的发行版,我们编辑好用户的cron配置文件保存退出后,系统会自动就存放于 /var/spool/cron/目录中,文件以用户名命名。在Slackware中是位于/var/spool/cron/crontabs/目录中。其它的发行版都差不多,有点类似。自己找找吧;查看用户的计划任务是crontab -l crontab -e 注:编辑用户的cron配置文件; crontab -l 注:查看用户的计划任务; 比如我用beinan用户来运行crontab -e ; [beinan@localhost ~]$ id 注:判断所用用户身份; uid=500(beinan) gid=500(beinan) groups=500(beinan) [beinan@localhost ~]$ crontab -e 注:编辑用户beinan的计划任务; 我们在里面定义一个任务; 40 20 * * * /usr/bin/wget http://mirrors.kernel.org/fedora/core/5/i386/iso/FC-5-i386-DVD.iso 保存退出后,我们用下面的命令来查看beinan用户的计划任务; [beinan@localhost ~]$ crontab -l 40 20 * * * /usr/bin/wget http://mirrors.kernel.org/fedora/core/5/i386/iso/FC-5-i386-DVD.iso 配置好后,我们还要重新启动crond服务器,每个用户cron配置文件的改动都得重新启动crond服务器;前面已经说过了,这里省略;值得注意的是重启crond服务器,需要root权限,您可以用su命令切换到root 用户,然后再来重启crond; 在Fedora或Redhat等以RPM包管理的发行版中; [beinan@localhost ~]$ su 口令: [root@localhost beinan]# /etc/init.d/crond restart 停止 crond: [确定] 启动 crond: [确定] 也可以先杀死crond,再运行crond命令的办法来启动; [root@localhost beinan]# pkill crond [root@localhost beinan]# pgrep crond [root@localhost beinan]# /usr/sbin/crond [root@localhost beinan]# pgrep crond 6664 3、计划任务的应用范围; 计划任务主要是让系统自动完成一些工作。比如我们可以让系统自动在某一时刻清理或备份httpd服务器的日志,然后重新启动httpd服务器,这对网络管理员来说是很重要的。也可以让系统自动清空位于/tmp目录的垃圾文件。 另外值得一提的是,LinuxSir.Org 有很多子站,每个子站都有RSS,能让这些站点的RSS相互投递,也是用cron来完成,比如是在早上4点左右开始执行这个任务。这是一个极为耗费资源的过程,如果不是放在在线人少的时候,基本无法完成,所以只能放在早上进行。作为SIR的管理员,不可能每天早上4点起来点鼠标来完成这些事吧。所以最好的办法就是通过cron来自动运行,以在服务器最清闲的时候来完成这项工作; 4、关于本文; 本文是关于计划任务的,本来想把有关计划任务的内容都写在一个文档中,由于在写文档之前没有准备好,所以只写了一个cron ;本文可能会在近期调整一下,加入at等工具的用法等; 5、后记; 这篇后记不用写了,我在本文档修改期间写了进程管理的文档; 有一件趣事得提一提,昨天查看lumaqq.inuxsir.org 的 google 广告收入,目前大约是70$左右,这个广告帐户,目前我是代luma兄管理的。现在看来广告是比较少。。。。。从一月份到现在,半年快过去了,才仅仅 70$。 6、参考文档,足球比分直播; 7、相关文档; Linux的计划任务at命令: 称 : at 使用权限 : 所有使用者 使用方式 : at -V [-q queue] [-f file] [-mldbv] TIME 说明 : at 可以让使用者指定在 TIME 这个特定时刻执行某个程式或指令,TIME 的格式是 HH:MM其中的 HH 为小时,MM 为分钟,甚至你也可以指定 am, pm, midnight, noon, teatime(就是下午 4 点锺)等口语词。 如果想要指定超过一天内的时间,则可以用 MMDDYY 或者 MM/DD/YY 的格式,其中 MM 是分钟,DD 是第几日,YY 是指年份。另外,使用者甚至也可以使用像是 now + 时间间隔来弹性指定时间,其中的时间间隔可以是 minutes, hours, days, weeks? 另外,使用者也可指定 today 或 tomorrow 来表示今天或明天。当指定了时间并按下 enter 之后,at 会进入交谈模式并要求输入指令或程式,当你输入完后按下 ctrl+D 即可完成所有动作,至于执行的结果将会寄回你的帐号中。 把计 : -V : 印出版本编号 -q : 使用指定的伫列(Queue)来储存,at 的资料是存放在所谓的 queue 中,使用者可以同时使用多个 queue,而 queue 的编号为 a, b, c... z 以及 A, B, ... Z 共 52 个 -m : 即使程式/指令执行完成后没有输出结果, 也要寄封信给使用者 -f file : 读入预先写好的命令档。使用者不一定要使用交谈模式来输入,可以先将所有的指定先写入档案后再一次读入 -l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l) -d : 删除指定 (使用者也可以直接使用 atrm 而不用 at -d) -v : 列出所有已经完成但尚未删除的指定 例子 : 三天后的下午 5 点锺执行 /bin/ls : at 5pm + 3 days /bin/ls 三个星期后的下午 5 点锺执行 /bin/ls : at 5pm + 2 weeks /bin/ls 明天的 17:20 执行 /bin/date : at 17:20 tomorrow /bin/date 1ArrayArrayArray 年的最后一天的最后一分钟印出 the end of world ! at 23:5Array 12/31/1ArrayArrayArray echo the end of world ! Array1linux 以上内容由 华夏名网 搜集整理,如转载请注明原文出处,并保留这一部分内容。 “华夏名网” http://www.sudu.cn 和 http://www.bigwww.com 是成都飞数科技有限公司的网络服务品牌,专业经营虚拟主机,域名注册,VPS,服务器租用业务。公司创建于2002年,经过6年的高速发展,“华夏名网”已经成为我国一家知名的互联网服务提供商,被国外权威机构webhosting.info评价为十大IDC服务商之一。华夏名网网址导航: 虚拟主机 在此下载 www.5566001.com ;game began, two high- playground 线主机 主机 域名注册 cn域名 域名 服务器租用 酷睿服务器 vps vps主机 (责任编辑:admin) |
![全讯网,sp全讯网[全讯网5566001]乐透乐博彩,博彩网,博彩通,博彩平台,博彩e族,博彩论坛,体育博彩网,博彩网推荐伟易博,皇冠网,皇冠走地,皇冠博彩网,永利高网址,永利开户 gusoso.com](/templets/default/images/logo.gif)