linux设置服务自动启动命令

worktile 其他 19

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    使用Linux系统时,我们经常需要让某些服务在系统启动时自动启动,以保证这些服务在系统运行期间始终可用。下面将介绍几种常见的Linux设置服务自动启动的方法。

    1. 使用sysvinit(SysV)启动脚本:
    SysV是一种传统的Linux启动系统,通过在/etc/init.d目录中创建启动脚本,然后在/etc/rc.d/或/etc/rc*.d/目录中创建相关符号链接来实现自动启动。

    首先,创建一个启动脚本(以启动MySQL服务为例):
    “`
    sudo nano /etc/init.d/mysql
    “`
    在文件中输入以下内容:
    “`
    #!/bin/bash
    ### BEGIN INIT INFO
    # Provides: mysql
    # Required-Start: $remote_fs $network
    # Required-Stop: $remote_fs $network
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: MySQL Server
    # Description: MySQL Server
    ### END INIT INFO

    # 脚本执行的命令
    case $1 in
    start)
    /path/to/mysql/bin/mysqld_safe &
    ;;
    stop)
    /path/to/mysql/bin/mysqladmin shutdown
    ;;
    restart)
    $0 stop
    sleep 5
    $0 start
    ;;
    *)
    echo “Usage: $0 {start|stop|restart}”
    exit 1
    esac

    exit 0
    “`
    记得将`/path/to/mysql`替换为实际的MySQL安装路径。保存并退出。

    接下来,授予脚本执行权限:
    “`
    sudo chmod +x /etc/init.d/mysql
    “`

    创建服务的符号链接:
    “`
    sudo ln -s /etc/init.d/mysql /etc/rc.d/rc3.d/S99mysql
    sudo ln -s /etc/init.d/mysql /etc/rc.d/rc3.d/K01mysql
    “`

    这些符号链接分别表示在运行级别3(多用户命令行模式)下启动(S99mysql)和停止(K01mysql)MySQL服务。

    重启系统,MySQL服务将自动启动。

    2. 使用Systemd启动脚本:
    在一些新的Linux发行版中,如CentOS 7,Systemd已经成为默认的初始化系统。使用Systemd,可以通过创建.service文件来设置自动启动。

    首先,创建一个启动脚本(以启动Nginx服务为例):
    “`
    sudo nano /etc/systemd/system/nginx.service
    “`

    输入以下内容:
    “`
    [Unit]
    Description=The NGINX HTTP and reverse proxy server
    After=syslog.target network.target remote-fs.target nss-lookup.target

    [Service]
    Type=forking
    PIDFile=/var/run/nginx.pid
    ExecStartPre=/usr/sbin/nginx -t
    ExecStart=/usr/sbin/nginx
    ExecReload=/usr/sbin/nginx -s reload
    ExecStop=/usr/sbin/nginx -s stop

    [Install]
    WantedBy=multi-user.target
    “`

    记得根据实际的Nginx安装路径进行替换。保存并退出。

    接下来,更新Systemd并启动服务:
    “`
    sudo systemctl daemon-reload
    sudo systemctl enable nginx
    sudo systemctl start nginx
    “`

    至此,Nginx服务将被设置为在系统启动时自动启动。

    以上是两种常见的Linux设置服务自动启动的方法,根据你使用的发行版和初始化系统的不同,可能有所差异。根据实际情况选择合适的方法进行配置。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux中,可以使用以下命令来设置服务自动启动:

    1. chkconfig:这是一个用于管理服务启动的命令,在大多数基于RPM包管理的Linux发行版中都有。使用chkconfig命令可以设置服务在系统启动时自动启动。例如,要将httpd服务设置为自动启动,可以使用以下命令:
    “`
    chkconfig httpd on
    “`

    2. systemctl:这是一个用于管理systemd服务的命令,在最新的Linux发行版中普遍使用systemd作为系统初始化和服务管理器。使用systemctl命令可以设置服务在系统启动时自动启动。例如,要将httpd服务设置为自动启动,可以使用以下命令:
    “`
    systemctl enable httpd
    “`

    3. update-rc.d:这是一个用于管理SysVinit服务的命令,在一些旧版Linux发行版中仍然使用。使用update-rc.d命令可以设置服务在系统启动时自动启动。例如,要将apache2服务设置为自动启动,可以使用以下命令:
    “`
    update-rc.d apache2 defaults
    “`

    4. service:这是一个用于管理SysVinit服务的命令,在一些旧版Linux发行版中仍然使用。使用service命令可以启动、停止和重启服务,但无法直接设置自动启动。要启用自动启动,可以配合update-rc.d命令使用。例如,要将nginx服务设置为自动启动,可以使用以下命令:
    “`
    service nginx start
    update-rc.d nginx defaults
    “`

    5. 脚本方法:除了使用命令行工具外,还可以通过编辑启动脚本来设置服务自动启动。在/etc/init.d/目录下可以找到服务的启动脚本,可以通过编辑这些脚本的内容来实现自动启动。首先将脚本文件复制到/etc/init.d/目录中,然后使用chmod命令设置脚本文件的执行权限,最后使用ln命令将脚本链接到/etc/rc.d/rcX.d/目录中(X代表运行级别)。这样,当系统启动时,脚本会被执行,实现服务的自动启动。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux中,可以使用systemd或SysVinit来设置服务的自动启动。

    一、使用systemd来设置服务的自动启动
    1. 创建一个名为`service_name.service`的服务单元文件,其中`service_name`为服务的名称。该文件通常存放在`/etc/systemd/system/`目录下。
    – 例如:要设置Apache服务自动启动,可以创建`apache.service`文件。

    2. 编辑服务单元文件,指定服务的启动命令、启动前条件、启动顺序等。
    – 例如:
    “`
    [Unit]
    Description=Apache Service
    After=network.target

    [Service]
    ExecStart=/usr/sbin/httpd -k start
    Restart=on-failure

    [Install]
    WantedBy=multi-user.target
    “`
    – `Description`:服务的描述信息。
    – `After`:服务启动所依赖的其他单元,在此例中,服务需要在网络启动之后才能启动。
    – `ExecStart`:服务的启动命令。
    – `Restart`:服务在异常结束时自动重启。
    – `WantedBy`:指定服务所属的目标单元,此例中表示服务随多用户模式启动。

    3. 保存文件并退出。

    4. 使用以下命令重新加载systemd守护程序以使更改生效:
    “`
    sudo systemctl daemon-reload
    “`

    5. 使用以下命令启动服务并设置开机自启:
    “`
    sudo systemctl start service_name
    sudo systemctl enable service_name
    “`

    6. 使用以下命令验证服务是否已经自动启动:
    “`
    sudo systemctl is-enabled service_name
    “`

    二、使用SysVinit来设置服务的自动启动
    1. 找到服务的启动脚本文件,这些脚本通常存放在`/etc/init.d/`目录下。
    – 例如:要设置Apache服务自动启动,可以找到`/etc/init.d/httpd`文件。

    2. 创建服务的符号链接,将脚本链接到特定的运行级别目录下。
    – 例如:将Apache服务链接到运行级别3和5目录下。
    “`
    sudo ln -s /etc/init.d/httpd /etc/rc3.d/S80httpd
    sudo ln -s /etc/init.d/httpd /etc/rc5.d/S80httpd
    “`

    3. 使用以下命令启动服务:
    “`
    sudo service service_name start
    “`

    4. 使用以下命令设置服务开机自启:
    “`
    sudo chkconfig service_name on
    “`

    5. 使用以下命令验证服务是否已经自动启动:
    “`
    sudo chkconfig –list | grep service_name
    “`

    以上是Linux中使用systemd和SysVinit设置服务自动启动的方法。根据具体的发行版和版本,可能会有一些差异,请根据实际情况进行设置。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部