Linux系统设置开机自动运行脚本的方法实例

一、Linux开机自动运行脚本的方法

在Linux系统中,我们可以通过编写脚本,实现系统开机自动运行一些指定的程序、服务等。以下是实现Linux开机自动运行脚本的方法:

  1. 将脚本文件复制到/etc/init.d/目录下,并加上可执行权限。
    例如,假设我们有一个脚本文件 test.sh,那么我们可以通过以下命令将其复制到 init.d 目录下:

    sudo cp test.sh /etc/init.d/

接着,我们需要添加可执行权限:

sudo chmod +x /etc/init.d/test.sh

在脚本文件中,我们需要添加以下内容,这个内容是标准的初始化脚本支持:

#!/bin/sh
# chkconfig: 2345 20 80
# description: <description>

其中,chkconfig 行指定了需要在哪些运行级别下启动脚本,20 表示在启动顺序中的序号,80 表示在关闭顺序中的序号。

  1. 使用 chkconfig 命令设置开机自动运行
    chkconfig 命令是一个用于管理服务的工具,它可以帮助我们管理哪些服务随系统启动而启动。
    以下是 chkconfig 命令的基本用法:

    sudo chkconfig --add test.sh # 添加脚本
    sudo chkconfig test.sh on # 设置脚本开机自启动
    sudo chkconfig test.sh off # 取消脚本开机自启动

以上命令中,“test.sh”是代替具体脚本文件名的占位符。

二、示例

假设我们要将一个 node.js 的程序作为一个服务在Linux系统开机后自动运行。以下是实现的步骤:

  1. 编写启动脚本
    在 /etc/init.d 目录下创建一个文件,例如 node_app,文件内容如下:

    !/bin/bash

    chkconfig: 2345 90 10

    description: node.js app

    APP_NAME='/path/to/app.js'
    PID_FILE='/var/run/node_app.pid'

    case "$1" in
    start)
    echo -n "Starting node.js app: "

        cd `dirname $APP_NAME`
        nohup node $APP_NAME >/dev/null 2>&1 &
        echo $! > $PID_FILE
    
        echo "OK"
        ;;
    stop)
        echo -n "Stopping node.js app: "
    
        if [ ! -f $PID_FILE ]; then
            echo "app not running"
            exit 0
        fi
    
        kill `cat $PID_FILE`
        while ps -p `cat $PID_FILE` > /dev/null 2>&1; do sleep 1; done
    
        rm -f $PID_FILE
    
        echo "OK"
        ;;
    *)
        echo "Usage: $0 {start|stop}"
        exit 1
        ;;
    

    esac

    exit 0

上述脚本内容比较通用,修改 APP_NAME 值为你的 node.js 程序路径即可。

  1. 添加可执行权限

    sudo chmod +x /etc/init.d/node_app

  2. 设置开机自动运行

    sudo chkconfig --add node_app
    sudo chkconfig node_app on

如果需要修改脚本内容,可以再运行一次 chmod 命令来更新脚本。如果需要关闭服务的开机自启动,可以运行以下命令:

sudo chkconfig node_app off

另外,如果要确定服务是否在运行,可以运行以下命令:

sudo service node_app status

上述方法同样适用于 Ubuntu 和 CentOS 等其它 Linux 发行版。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux系统设置开机自动运行脚本的方法实例 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • docker 运行 redis 并指定配置文件

      1、上传配置文件到服务器。目录如下 2、 swt@ubuntu-swt:~$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3、运行容器 sudo docker run -d -v /home/swt/redis/:/data -p 6379:6379 redis…

    Redis 2023年4月13日
    00
  • 详解mysql 中的锁结构

    详解 MySQL 中的锁结构 MySQL 中的锁分为表级锁和行级锁。当多个用户并发访问同一数据时,若不进行任何控制,则会造成数据的不一致性。通过加锁机制,可以控制同一时间只有一个用户访问数据,从而保证数据的一致性。 表级锁 表级锁是对整张表进行加锁,包括读锁和写锁。当一个用户获取写锁时,其他用户无法获取读锁和写锁,从而防止其他用户对表进行读写操作。 示例: …

    database 2023年5月21日
    00
  • Win2008中SqlServer2008 无法打开错误日志文件导致无法启动的解决方法

    以下是详细的攻略: 问题描述 在Win2008系统中使用SqlServer2008时,可能会遇到无法启动的问题。查看错误日志时发现无法打开日志文件,导致无法启动。此时,我们需要进行以下的解决方法。 解决方法 方法一:修改服务启动参数 打开服务管理器,找到SQL Server服务,选中右键,选择“属性”。 在“属性”对话框中,选择“服务”选项卡,找到“启动参数…

    database 2023年5月21日
    00
  • mysql字符集相关总结

    MySQL字符集相关总结 MySQL字符集是指在数据库中使用的字符编码方式,包括每个字符所占的位数、用于存储的字节及其排序规则等方面。正确选择和设置字符集对于保障数据库数据的完整性及避免乱码问题具有非常重要的意义。 MySQL字符集类型 MySQL字符集主要分为以下几种类型: ASCII:一种只有128个字符的字符集,包括数字、字母和一些标点符号等。 Uni…

    database 2023年5月22日
    00
  • MySQL 服务和数据库管理

    MySQL服务和数据库管理是Web应用程序和网站开发环境中的重要组成部分。在本文中,我们将介绍MySQL服务和数据库管理的完整攻略。 MySQL服务 MySQL是一种开源的关系型数据库管理系统,可以将其安装在服务器上以供多个用户使用。在本节中,我们将介绍如何安装和配置MySQL服务。 安装MySQL 首先,你需要从MySQL的官方网站下载MySQL安装程序。…

    database 2023年5月22日
    00
  • php+mysql开发中的经验与常识小结

    PHP+MySQL开发中的经验与常识小结 1. 使用PDO进行数据库操作 PDO是PHP中的一个扩展,用于操作各种类型的数据库。相比于传统的mysql扩展,PDO使用面向对象的方式操作数据库,具有更好的跨平台和安全性。以下是使用PDO连接数据库及执行查询的示例: try { // 连接数据库 $dbh = new PDO(‘mysql:host=localh…

    database 2023年5月22日
    00
  • MongoDB在系统数据库local中无法创建用户的解决办法

    题目:MongoDB在系统数据库local中无法创建用户的解决办法 问题描述 在使用MongoDB时,有时候需要在local数据库中创建用户进行其他操作。但是在操作时,可能会遇到如下错误提示: db.createUser({ "user" : "test_user", "pwd" : "t…

    database 2023年5月18日
    00
  • 在Centos 8.0中安装Redis服务器的教程详解

    在Centos 8.0中安装Redis服务器的教程详解 1. 获取Redis软件包 在Centos 8.0中,可以通过下列命令获取Redis软件包: sudo dnf install redis 2. 启动Redis服务 在Centos 8.0中,可以使用以下命令启动Redis服务: sudo systemctl start redis 如果您想要Redis…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部