刚开始学linux一直搞不懂用yum安装rpm包装在哪个位置,但是源码安装可以指定安装目录,产生一个问题这两者有什么区别呢?
两者最大的区别是安装位置的不同
rpm包会安装在默认位置/etc/rc.d/init.d/ (软链接 /etc/init.d)
源码安装我们有时一般指定安装在:/usr/local/
因为安装位置的区别导致两者启动方式也不一样 启动方式是/etc/rc.d/init.d/httpd start(脚本路径 + 命令)
rpm包安装的服务可以systemctl start foo.service 其实就是找到/etc/rc.d/init.d/ 这个路径启动服务
源码包安装的服务需要找到路径启动,这样每次开启源码包服务都需要找到路径启动岂不是很麻烦!!!
想到偷懒的方式源码包也可以采取systemctl命令方式启动吗?
可以使用以下的方式: (建立软链接将源码安装路径 链接到 rpm启动路径下)
ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache 或者(改名字apache)
ln -s /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/
可以和rpm一样采用service httpd start (centos6版本) systemctl start httpd.service(centos7版本)启动
还要一个问题,开机自启动两者可以做到一样吗?
3rpm包安装后开机自启动的方法
a:系统每次开机会读一个文件,所以可以编辑这个配置文件vi /etc/rc.d/rc.local (软链接 /etc/rc.local) 加入/etc/init.d/httpd start
b:chkconfig httpd on
分享一些其他命令:
2.查看服务
centos 7 :systemctl list-unit-files | grep enable
centos 6 :chkconfig --list 查看服务自启动状态 (系统有7个运行级别,查看到服务在此级别下的自启动)
上面命令是查看系统自启动的服务,并不能查看到当前系统启动的服务,那怎么看呢?
netstat -tlun 会列出系统中当前的已经启动的的服务
-t 列出tcp数据
-u列出udp数据
-l列出正在监听的网络服务
-n用端口号来显示服务,而不是用服务名
-p列出该服务的进程ID(PID)