Linux自启动某项服务一.踩的坑因为我在笔记本上重新安装Linux虚拟机,自信的我以为用了Linux那么久,应当没有哪些难度,并且从我开始重新安装Linux系统才晓得那么辣鸡的我。这儿我就以开启SSH自启动服务为例述说一下:二.开启SSH服务
开启SSH服务虽然很简单,几行命令的事。切换到root用户
// 切换到root
su - root
// 开启自启动服务
/etc/init.d/sshd start //第一种开启方式
netstat -antulp | grep ssh // 查看是否有相关ssh的信息,如没有,就没有开启成功
service sshd start //第二种开启方式
netstat -antulp | grep ssh // 查看是否有相关ssh的信息,如没有,就没有开启成功
并且你会发觉,仍然未能telnet通,我的telnet命令如下
telnet 192.168.201.128 22 // 22是ssh的端口号
我推测是防火墙的缘由,我又输入命令行
// 1. 设定
/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
// 2. 保存
/etc/rc.d/init.d/iptables save
// 3. 重启防火墙
service iptables restart
// 4. 查看防火墙
/etc/init.d/iptables status
现今的我高兴惨了,总算可以使用远程软件Xshell联接了,高高兴兴地reboot下,MDlinux启动ftp服务命令,如何搞的?又联接不上了,我的猜测是:1.我没有对此服务开启开启自启动;2.我装的Linux系统是假Linux系统linux命令,reboot后不能保存我更改的配置信息。为了否认第二点,我新建一个文件,之后向文件中输入一些文字,保存以后reboot下,没想到真是这个缘由,最终诱因还是我实在是太辣鸡了,下载了一个Live版本的Linux系统,也就是有点像“现场版本”的系统,难以保存任何配置,没办法只有重新下载了。
附上下载链接CentOS6.9
三.Linux自启动服务三种形式1.ln-s构建启动软联接
在Linux中有7种运行级别(可以在/etc/inittabe文件中设置),每种运行级别分别对应着/etc/rc.d/rc[0-6].d这7个目录。
Tips:/etc/rc[0-6].d,虽然是/etc/rc.d/rc[0-6].d的软联接,主要是为了保持和Unix的兼容性才做此策。
这7个目录中,每位目录分别储存着对应运行级别加载时须要关掉或启动的服务
K开头的脚本文件代表运行级别加载时须要关掉的,S开头的代表须要启动执行的
因而,当我们须要开机启动自己的脚本时,只须要将可执行文件丢在/etc/init.d文件夹中,在/etc/rc[级别].d中构建软链接即可。
// 此处sshd是具体的服务脚本,S100ssh是其软链接, S开头表示开机时自启动
ln -s /etc/init.d/ sshd /etc/rc.d/rc3.d/S100ssh
// 如果需要在多个运行级别下设置自启动,则需要建立多个软链接,
// 这种方式比较繁琐,适用于自定义的服务脚本
// 如果系统中已经存在某些服务(比如安装apache时就会有httpd服务项),可以使用下面两种方式
第二种方法:chkconfig
chkconfig 服务名 on
chkconfig 服务名 off
chkconfig --level 35 服务名 on
chkconfig --list 服务名
假如须要自启动某项服务linux启动ftp服务命令,只须要使用chkconfig服务名on即可,倘若关掉,将on改为off。在默认情况下,chkconfig会自启动2345这四个级别,假如想自定义可以加上–level选项。
前面我们先将服务的所有的启动级别关掉,之后使用–level选项自启动自定义级别。
Tips:–list选项课查看指定服务的启动状态,chkconfig不带任何选项则查看所有服务的状态。
第三种形式:ntsysv伪图形
ntsysv和chkconfig似乎是一样的,只不过加上了图形而已
启动ntsysv用两种方法,一是直接在命令行中输入ntsysv,二是使用setup命令,之后选择系统服务。
默认情况下,当前运行级别为多少,在ntsysv中设置的启动服务的级别便是多少!
例如linux安装教程,我当前运行的级别是3,这么我在伪图形中选择启动服务后,它的运行级别也会是3,假如想自定义运行级别可使用ntsysv–level2345形式。
ntsysv --level 2345
以上三种操作须要保证服务脚本文件可执行,但是要有root权限。
其中,第一种方法多用于自定义脚本;第二种、第三种多用于系统已存在的服务。例如ftp、samba、ssh、httpd等等。