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

yizhihongxing

一、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日

相关文章

  • MySQL检索数据操作方法梳理

    MySQL检索数据操作方法梳理 MySQL作为一种开源且广泛应用的关系型数据库管理系统,其检索数据的操作方法是数据库开发中经常使用的基本技能。下面是MySQL检索数据操作方法的详细攻略,包括基本语法、常用关键字和示例说明等内容。 基本语法 在MySQL中,检索数据的基本语法为: SELECT column1, column2, … FROM table_…

    database 2023年5月22日
    00
  • linux oracle 乱码 Linux环境Oracle显示乱码解决犯法

    Linux环境Oracle显示乱码可能是由于数据库的编码设置不正确,或者Linux系统的字符集和Oracle客户端的字符集不匹配所致。以下是解决这个问题的一些方法和步骤。 确认系统、终端和Oracle客户端的字符集 在Linux系统上,输入以下命令可以查看系统的字符集: locale 在Oracle客户端上,你可以输入以下命令来查询Oracle客户端的字符集…

    database 2023年5月22日
    00
  • Mysql联合查询UNION和Order by同时使用报错问题的解决办法

    当在MySQL中使用联合查询UNION以及Order by排序时,可能会遇到以下错误: #1221 – Incorrect usage of UNION and ORDER BY 这是因为UNION和Order by语句是有限制的,不能在同一个查询中同时使用。不过这个问题可以通过以下两种方式来解决: 解决方法一:将UNION查询结果作为子查询进行排序 这种方…

    database 2023年5月22日
    00
  • SQL 从给定日期值里提取年月日时分秒

    提取SQL日期值里的年月日时分秒可以使用函数来完成,一般情况下可以使用以下函数来提取SQL日期值: YEAR(date):返回日期中的年份。 MONTH(date):返回日期中的月份。 DAY(date):返回日期中的天数。 HOUR(time):返回时间中的小时数。 MINUTE(time):返回时间中的分钟数。 SECOND(time):返回时间中的秒数…

    database 2023年3月27日
    00
  • 浅谈Redis的事件驱动模型

    浅谈Redis的事件驱动模型 什么是事件驱动模型 事件驱动模型是指基于事件和回调的编程方式。在事件驱动模型中,程序并不会一直轮询某个IO处理器、关键组件或设备是否有新的操作。相反,程序在启动之后,可以设置事件监听器或回调函数来处理触发的事件。当事件发生时,相关的回调函数会被执行。这种模型使得程序能够实时响应事件和操作,避免了轮询等待事件的浪费。 Redis的…

    database 2023年5月22日
    00
  • MySQL 的自增 ID 用完了,怎么办?

      一、简述  在 MySQL 中用很多类型的自增 ID,每个自增 ID 都设置了初始值。一般情况下初始值都是从 0 开始,然后按照一定的步长增加。在 MySQL 中只要定义了这个数的字节长度,那么就会有上限。   二、试验 数据表定义的自增 ID,如果达到上限之后。 再申请下一个 ID 的时候,获得到的值将保持不变。 我们可以通过下面这个例子来验证一下: …

    MySQL 2023年4月13日
    00
  • DBMS 中泛化和专业化的区别

    DBMS中的泛化和专业化是数据处理中常用的两个概念。泛化是通过抽取主要特征和抽象,将数据转化为更高层次的概念或模型,从而使得其具有更广泛的应用价值。而专业化则是将泛化后的模型或概念转化为具体的实现或应用。 在实际应用中,泛化和专业化在数据处理中的作用是互为补充的。泛化可以从大量数据中提炼出主要特征和规律,将其转换为更高层次、更具普遍性的概念,使得数据处理变得…

    database 2023年3月27日
    00
  • MySQL数据操作管理示例详解

    MySQL数据操作管理示例详解 本文将为您提供MySQL数据操作管理方法和示例,包括数据表的增删改查,数据的插入和更新等。 1. 数据库连接 使用MySQL之前,必须建立与服务器的连接。以下是连接MySQL数据库的标准PHP代码: <?php $host = ‘localhost’; //数据库主机名 $user = ‘root’; //数据库用户名 …

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