一、Linux开机自动运行脚本的方法
在Linux系统中,我们可以通过编写脚本,实现系统开机自动运行一些指定的程序、服务等。以下是实现Linux开机自动运行脚本的方法:
-
将脚本文件复制到/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 表示在关闭顺序中的序号。
-
使用 chkconfig 命令设置开机自动运行
chkconfig 命令是一个用于管理服务的工具,它可以帮助我们管理哪些服务随系统启动而启动。
以下是 chkconfig 命令的基本用法:sudo chkconfig --add test.sh # 添加脚本
sudo chkconfig test.sh on # 设置脚本开机自启动
sudo chkconfig test.sh off # 取消脚本开机自启动
以上命令中,“test.sh”是代替具体脚本文件名的占位符。
二、示例
假设我们要将一个 node.js 的程序作为一个服务在Linux系统开机后自动运行。以下是实现的步骤:
-
编写启动脚本
在 /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 程序路径即可。
-
添加可执行权限
sudo chmod +x /etc/init.d/node_app
-
设置开机自动运行
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技术站