在Linux中设置自启动服务或程序

时间:2021-09-22 15:38:11

三种方法:

  1.基于linux的system V机制,其中有个运行级别和链接软连接指向服务脚本的机制。

    服务脚本一般处于/etc/init.d/目录下,

    而运行级别制定的默认执行脚本在/etc/rc.d/rc[0-6]/目录下,

    所以我们只需要两步:

      1.将自己写的脚本文件丢道/etc/init.d/目录中(系统自带或安装的目录也在这下面)

      2.在/etc/rc.d.rc[0-6]/目录下建立指向该脚本的软连接

          ln -s etc/init.d/脚本 /etc/rcd/rc[0-6]/S100SSH

                                 (每个软连接名字前面必须为S,这代表开机启动)

 

      如目标是在系统启动时自动开启nfs,tftp,samba,ssh四个服务:

      方法1:

          将四个服务依次建立软连接到各个运行级别的文件中去。

            ln -s /etc/init.d/tftpd-hpa   /etc/rc2.d/S10666tftpd  

            ln -s /etc/init.d/tftpd-hpa   /etc/rc3.d/S10666tftpd

            ...

            ln -s /etc/init.d/sshd   /etc/rc3.d/S10666sshd    

            ln -s /etc/init.d/sshd   /etc/rc2.d/S10666sshd

            ...

            ...

             这样操作就比较多。

 

          更简单的方法:

          写一个脚本文件

          

            #!/bin/bash
            ifconfig eth0 192.168.32.128
            sudo /etc/init.d/ssh restart
            sudo /etc/init.d/nfs-kernel-server restart
            sudo service tftpd-hpa restart

        将这个脚本文件放到/etc/init.d/目录下,

        再将这个脚本创建软连接到各个运行界别目录下就可以了。

 

 

   (推荐使用上者,下面还有很多问题没解决)

  2.利用工具chkconfig

    (1)安装:apt-get install chkconfig

        如果安装不了,出现Install these packages without verification?

        apt-get update

        apt-get install chkconfig

        如果还是不行,那就换个源

          网上搜索一个源,修改/etc/apt/soucure.list,然后

        apt-get update

        apt-get install chkconfig

    (2)chkconfig --list 服务

          这语句可查看该服务在哪些运行级别下是自启动

    (3)chkconfig 服务 on         可开启这个服务的自启动

          如果开启时出现/sbin/insserv: No such file or directory

        那就ln -s /usr/lib/insserv/insserv /sbin/insserv

        再chkconfig 服务 on

 

      chkconfig --list 服务就可以查看到那些运行级别下自启动了,默认是2345

 

    有时候,chkconfig 服务 on  了再使用chkconfig --lis查看并没有什么效果,目前还没有解决这个问题,