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日

相关文章

  • Centos7.5安装mysql5.7.24二进制包方式部署

    下面我将为您提供Centos7.5安装mysql5.7.24二进制包方式部署的详细攻略。 准备工作 在开始安装mysql5.7.24之前,需要确保系统中已经安装了以下软件包: wget tar gcc gcc-c++ ncurses-devel cmake 如果没有安装以上软件包,请使用以下命令进行安装: yum install -y wget tar gc…

    database 2023年5月22日
    00
  • MySQL主从同步、读写分离配置步骤

    下面是MySQL主从同步、读写分离配置步骤的详细攻略。 一、MySQL主从同步 1. 配置主服务器 在主服务器上,需要配置MySQL的主从同步参数,具体步骤如下: 编辑配置文件/etc/my.cnf,添加如下内容: [mysqld] log-bin=mysql-bin # 开启binlog日志 server-id=1 # 主服务器的唯一ID 重启MySQL服…

    database 2023年5月18日
    00
  • ThinkPHP CURD方法之where方法详解

    ThinkPHP CRUD方法之where方法详解 在ThinkPHP中,CURD是指Create、Update、Read、Delete,即对数据进行添加、更新、读取和删除的操作。其中,where方法是在进行数据读取时,用于设置查询条件的重要方法。 where方法的使用 在ThinkPHP中,where方法可以用于设置查询条件,示例如下: $users = …

    database 2023年5月21日
    00
  • PL SQL中实际参数和形式参数的区别

    PL/SQL是Oracle数据库中一种面向对象的编程语言,引入了实际参数和形式参数的概念。 实际参数是传递给函数或过程的实际值。形式参数是在函数或过程定义中声明的参数。在函数或过程的调用过程中,实际参数的值会被复制到形式参数中。接下来,我们将详细介绍实际参数和形式参数的区别。 值传递和引用传递 PL/SQL中的实际参数和形式参数的区别在于它们进行参数传递的方…

    database 2023年3月27日
    00
  • SQL中order by和group by子句的区别

    下面是SQL中order by和group by子句的区别的详细讲解。 order by子句 order by子句是SQL语句用来指定结果集排序顺序的一种方式。使用order by子句,可以将结果集按照指定的列进行升序或降序排列。order by子句必须放在select语句的最后面,可以指定一个或多个排序条件,语法如下: SELECT 列1, 列2, ……

    database 2023年3月27日
    00
  • 浅析Python中MySQLdb的事务处理功能

    浅析Python中MySQLdb的事务处理功能 MySQLdb是Python中一个广为使用的MySQL数据库连接库。在实际应用中,对于大多数操作而言,单个SQL语句已经足够满足需求。但对于涉及到多条SQL语句的复杂操作,事务处理是必不可少的。MySQLdb提供了事务处理功能,能够确保操作成功或者失败的原子性。 开启事务 在MySQLdb中,使用connect…

    database 2023年5月22日
    00
  • MySQL性能优化技巧分享

    MySQL性能优化技巧分享 MySQL是广泛应用的关系型数据库管理系统,它能够存储和管理大规模的数据并提供快速可靠的数据访问服务。但是,当数据量增大和访问压力不断增加时,MySQL的性能可能会受到影响。本文将介绍一些MySQL性能优化的技巧,以确保MySQL的高性能运行。 1. 数据库规范设计 数据库规范设计是确保MySQL高效运行的重要因素。以下是数据库规…

    database 2023年5月19日
    00
  • 关于Mongodb参数说明与常见错误处理的总结

    关于Mongodb参数说明与常见错误处理的总结 Mongodb参数说明 配置文件参数 dbpath: 数据库文件存储路径 port: 监听端口,默认为27017 bind_ip: 绑定的IP地址,默认为127.0.0.1 logpath: 日志文件路径 logappend: 是否在文件末尾追加日志,默认为false fork: 是否以守护进程方式运行 更多配…

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