Linux下添加脚本到开机自启动的方法

合集下载

Linux—添加开机启动(服务脚本)

Linux—添加开机启动(服务脚本)

Linux—添加开机启动(服务脚本)系统启动时需要加载的配置⽂件/etc/profile、/root/.bash_profile/etc/bashrc、/root/.bashrc/etc/profile.d/*.sh、/etc/profile.d/lang.sh/etc/sysconfig/i18n、/etc/rc.local(/etc/rc.d/rc.local)⼀、修改开机启动⽂件:/etc/rc.local(或者/etc/rc.d/rc.local)# 1.编辑rc.local⽂件[root@localhost ~]# vi /etc/rc.local# 2.修改rc.local⽂件,在 exit 0前⾯加⼊以下命令。

保存并退出。

/etc/init.d/mysqld start # mysql开机启动/etc/init.d/nginx start # nginx开机启动supervisord -c /etc/supervisor/supervisord.conf # supervisord开机启动/bin/bash /server/scripts/test.sh >/dev/null2>/dev/null# 3.最后修改rc.local⽂件的执⾏权限[root@localhost ~]# chmod +x /etc/rc.local[root@localhost ~]# chmod755 /etc/rc.local⼆、⾃⼰写⼀个shell脚本将写好的脚本(.sh⽂件)放到⽬录 /etc/profile.d/ 下,系统启动后就会⾃动执⾏该⽬录下的所有shell脚本。

三、通过chkconfig命令设置# 1.将(脚本)启动⽂件移动到 /etc/init.d/或者/etc/rc.d/init.d/⽬录下。

(前者是后者的软连接)mv /www/wwwroot/test.sh /etc/rc.d/init.d# 2.启动⽂件前⾯务必添加如下三⾏代码,否侧会提⽰chkconfig不⽀持。

Linux系统重启脚本使用Shell脚本实现对Linux系统的定时重启和自动恢复

Linux系统重启脚本使用Shell脚本实现对Linux系统的定时重启和自动恢复

Linux系统重启脚本使用Shell脚本实现对Linux系统的定时重启和自动恢复Linux系统是一种广泛使用的操作系统,它在服务器和嵌入式设备中得到了广泛应用。

在实际运行过程中,为了确保系统的正常运行和稳定性,定时重启和自动恢复是必不可少的功能。

本文将介绍如何使用Shell脚本来实现对Linux系统的定时重启和自动恢复。

实施定时重启功能的第一步是创建一个Shell脚本。

通过使用Linux 的定时任务工具cron,我们可以在指定的时间自动运行这个脚本。

打开终端,输入以下命令创建一个新的脚本文件:```shell$ sudo nano restart.sh```接下来,我们需要编写重启脚本的内容。

在脚本中,我们将使用`shutdown`命令来实现重启功能。

以下是一个示例脚本:```shell#!/bin/bashshutdown -r now```保存并关闭文件。

接下来,我们需要为脚本添加执行权限:```shell$ sudo chmod +x restart.sh```现在,我们可以使用cron来设置定时任务。

通过运行以下命令,我们可以编辑当前用户的cron表:```shell$ crontab -e```在cron表中,每行代表一个定时任务。

按下`i`键进入编辑模式,然后添加以下行来设置每天重启的时间:```30 2 * * * /path/to/restart.sh```这样,每天的凌晨2点30分,系统将自动重启。

修改完成后,按下`Esc`键,然后输入`:wq`保存并退出。

现在,我们已经完成了定时重启功能的设置。

从现在起,系统将在指定时间自动执行重启。

另外,为了确保系统在重启后能够自动恢复到之前的状态,我们还可以编写一个自动恢复脚本。

该脚本将在系统重启后自动运行,并执行一系列操作以将系统恢复到正常状态。

继续使用前面创建的`restart.sh`脚本,我们可以在其中添加自动恢复的操作。

以下是一个示例脚本:```shell#!/bin/bash# 这里是自动恢复的操作```在具体的自动恢复操作中,您可以根据实际需求执行需要的命令和操作,比如恢复数据库、重启服务等。

Linux系统进程监控脚本使用Shell脚本监控系统进程并自动重启

Linux系统进程监控脚本使用Shell脚本监控系统进程并自动重启

Linux系统进程监控脚本使用Shell脚本监控系统进程并自动重启Shell脚本作为一种自动化脚本语言,可在Linux系统中编写和执行各种任务。

其中,一项重要的任务是监控系统进程并在必要时自动重启。

本文将介绍如何使用Shell脚本来实现Linux系统进程监控和自动重启的功能。

一、编写监控脚本首先,我们需要编写一个监控脚本来监控系统中的进程。

以下是一个示例的监控脚本:```#!/bin/bashprocess_name="example_process" # 要监控的进程名称while truedoprocess_num=$(pgrep $process_name | wc -l) # 统计进程数量if [ $process_num -eq 0 ]; then # 如果进程数量为0echo "进程 $process_name 未运行,正在尝试重新启动..."# 重新启动进程的命令,例如:# /path/to/example_process &# 注意加上后台运行符号&fisleep 60 # 休眠60秒,避免频繁检测done```在上述脚本中,首先定义了要监控的进程名称为`example_process`,然后使用一个无限循环来检测进程是否在运行。

通过`pgrep`命令和`wc -l`命令可以统计指定进程名称的进程数量。

如果进程数量为0,则输出提示信息,并执行重启进程的操作(根据实际情况自行修改重启命令)。

最后,使用`sleep`命令休眠60秒,以避免频繁检测。

二、保存并设置执行权限将上述脚本保存为一个以`.sh`为后缀的文件,例如`monitor_process.sh`。

然后,通过命令`chmod +x monitor_process.sh`为脚本文件添加执行权限。

三、设定定时任务为了让监控脚本能够定期执行,我们可以使用Linux系统中的定时任务功能。

Linux系统如何设置开机自动运行脚本

Linux系统如何设置开机自动运行脚本

在Windows 下,我们有很多方法可以设置开机启动,但在Linux 系统下我们需要如何操作呢?Linux 下同样可以设置开机启动,但可能需要我们敲一些命令(可能也有 UI 界面的设置方法,但我不熟,我更多是玩命令)。

下面我们就介绍三种简单但可行的开机启动设置方法。

方法一:修改/etc/rc.d/rc.local 文件/etc/rc.d/rc.local文件会在 Linux 系统各项服务都启动完毕之后再被运行。

所以你想要自己的脚本在开机后被运行的话,可以将自己脚本路径加到该文件里。

但是,首先需要确认你有运行这个文件的权限。

$ chmod +x /etc/rc.d/rc.local为了演示,我们创建了一个脚本,当它被执行之后,将在家目录下写入有特定信息的文件。

$ vim auto_run_script.sh#!/bin/bashdate >> /home/alvin/output.txthostname >> /home/alvin/output.txt保存退出后,再给它赋予可执行权限:$ chmod +x auto_run_script.sh然后,我们再将脚本添加到/etc/rc.d/rc.local文件最后一行:$ vim /etc/rc.d/rc.local/home/alvin/auto_run_script.sh接下来,我们就可以试试效果了。

直接重启系统就可以了:$ sudo reboot重启之后,就会在家目录下看到脚本执行的结果了。

方法二:使用crontab大家知道,crontab 是 Linux 下的计划任务,当时间达到我们设定的时间时,可以自动触发某些脚本的运行。

我们可以自己设置计划任务时间,然后编写对应的脚本。

但是,有个特殊的任务,叫作@reboot,我们其实也可以直接从它的字面意义看出来,这个任务就是在系统重启之后自动运行某个脚本。

那它将运行的是什么脚本呢?我们如何去设置这个脚本呢?我们可以通过crontab -e来设置。

LINUX系统中设置开机自动执行命令

LINUX系统中设置开机自动执行命令

LINUX系统中设置开机⾃动执⾏命令###1、开机⾃动执⾏命令配置⽂件位置[root@wx-local01 ~]# cd /etc/rc.d/[root@wx-local01 rc.d]# ls -l /etc/rc.d/总⽤量4drwxr-xr-x. 2 root root 107 9⽉510:40 init.ddrwxr-xr-x. 2 root root 45 11⽉172020 rc0.ddrwxr-xr-x. 2 root root 45 11⽉172020 rc1.ddrwxr-xr-x. 2 root root 45 11⽉172020 rc2.ddrwxr-xr-x. 2 root root 72 5⽉2614:02 rc3.ddrwxr-xr-x. 2 root root 72 5⽉2614:02 rc4.ddrwxr-xr-x. 2 root root 72 5⽉2614:02 rc5.ddrwxr-xr-x. 2 root root 45 11⽉172020 rc6.d-rwxr-xr-x. 1 root root 881 5⽉2716:06 rc.local[root@wx-local01 rc.d]# tree /etc/rc.d//etc/rc.d/├── init.d│├── functions│├── mysql -> /home/wx/mysql/support-files/mysql.server│├── netconsole│├── network│├── README│└── syschronzed_date├── rc0.d│├── K50netconsole -> ../init.d/netconsole│└── K90network -> ../init.d/network├── rc1.d│├── K50netconsole -> ../init.d/netconsole│└── K90network -> ../init.d/network├── rc2.d│├── K50netconsole -> ../init.d/netconsole│└── S10network -> ../init.d/network├── rc3.d│├── K50netconsole -> ../init.d/netconsole│├── S10network -> ../init.d/network│└── S63syschronzed_date -> ../init.d/syschronzed_date├── rc4.d│├── K50netconsole -> ../init.d/netconsole│├── S10network -> ../init.d/network│└── S63syschronzed_date -> ../init.d/syschronzed_date├── rc5.d│├── K50netconsole -> ../init.d/netconsole│├── S10network -> ../init.d/network│└── S63syschronzed_date -> ../init.d/syschronzed_date├── rc6.d│├── K50netconsole -> ../init.d/netconsole│└── K90network -> ../init.d/network└── rc.local8 directories, 24 files2、设置开机⾃启动命令[root@wx-local01 rc.d]# vim /etc/rc.d/rc.local#!/bin/bash# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES## It is highly advisable to create own systemd services or udev rules# to run scripts during boot instead of using this file.## In contrast to previous versions due to parallel execution during boot# this script will NOT be run after all other services.## Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure# that this script will be executed during boot.touch /var/lock/subsys/local#开机执⾏脚本启动harborsh /scripts/shell/start_harbor/power_on_self_starting_harbor.sh3、设置执⾏权限【不设置执⾏权限,启动后不执⾏⽂件中内容】[root@wx-local01 rc.d]# chmod +x /etc/rc.d/rc.local###。

Linux系统服务管理脚本使用Shell脚本实现对Linux系统服务的启动停止和重启操作

Linux系统服务管理脚本使用Shell脚本实现对Linux系统服务的启动停止和重启操作

Linux系统服务管理脚本使用Shell脚本实现对Linux系统服务的启动停止和重启操作在Linux系统中,服务是指在后台运行并提供各种功能的应用程序。

对于系统管理员来说,管理服务是非常重要和常见的任务。

为了更高效地管理Linux系统服务,可以使用Shell脚本实现对服务的启动、停止和重启操作。

本文将介绍如何使用Shell脚本来管理Linux系统服务。

一、编写Shell脚本首先,我们需要创建一个Shell脚本文件,例如名为“service_manage.sh”。

使用任何一个文本编辑器,打开一个新的文件,并输入以下内容:```shell#!/bin/bashfunction start_service {sudo systemctl start $1}function stop_service {sudo systemctl stop $1}function restart_service {sudo systemctl restart $1}echo "欢迎使用Linux系统服务管理脚本" echo "请输入您想要执行的操作:"echo "1. 启动服务"echo "2. 停止服务"echo "3. 重启服务"read choicecase $choice in1)echo "请输入要启动的服务名:"read service_namestart_service $service_name;;2)echo "请输入要停止的服务名:"read service_namestop_service $service_name;;echo "请输入要重启的服务名:"read service_namerestart_service $service_name;;*)echo "无效的选择";;esac```上述脚本定义了三个函数:`start_service`、`stop_service`和`restart_service`,分别用于启动、停止和重启服务。

Linux系统服务自动重启脚本使用Python编写的Linux系统服务自动重启工具

Linux系统服务自动重启脚本使用Python编写的Linux系统服务自动重启工具

Linux系统服务自动重启脚本使用Python编写的Linux系统服务自动重启工具在Linux系统中,有许多重要的服务需要持续运行以确保系统的稳定性和正常运行。

然而,由于各种原因,这些服务有时会出现异常崩溃或意外停止的情况,需要人工干预以重新启动这些服务。

为了提高系统的可用性和减少人工干预的需要,我们可以使用Python编写一个自动重启脚本,以便在服务停止时自动重新启动它们。

下面是这个Linux系统服务自动重启脚本的使用说明和示例代码:1. 环境准备在运行脚本之前,我们需要确保已经安装了Python解释器和相关的依赖库。

在大多数Linux发行版中,Python解释器是默认安装的,我们可以使用以下命令确认是否已经安装了Python:```python --version```如果已经安装,则会显示Python的版本号。

2. 脚本功能介绍这个自动重启脚本的主要功能是监控指定的系统服务,并在服务停止后自动重新启动它们。

脚本会周期性地检查服务的运行状态,如果服务停止,则会自动执行重启操作。

3. 用户配置在运行脚本之前,我们需要进行一些用户配置,以便脚本知道要监控哪些服务,并且知道如何执行重启操作。

在脚本的配置部分,我们可以设置以下参数:- 服务名称:指定要监控的服务的名称。

可以是单个服务,也可以是多个服务。

- 重启命令:指定服务启动的命令或脚本。

这个命令将在服务停止后执行以重新启动服务。

- 监控间隔:指定脚本检查服务状态的时间间隔,单位为秒。

下面是一个示例配置:```services = {'apache2': {'restart_cmd': 'systemctl restart apache2','interval': 10},'mysql': {'restart_cmd': 'service mysql restart','interval': 60},}```在这个示例配置中,我们监控了两个服务,分别是apache2和mysql。

Linux使用systemctl设置程序开机自启动

Linux使用systemctl设置程序开机自启动

Linux使⽤systemctl设置程序开机⾃启动1 说明设置开机⾃启动,需要⽤到systemctl⼯具。

systemctl是⼀个systemd⼯具,主要负责控制systemd系统和服务管理器。

systemd是⼀个系统管理守护进程、⼯具和库的集合,⽤于取代System V初始进程。

Systemd的功能是⽤于集中管理和配置类UNIX系统。

在Linux⽣态系统中,Systemd被部署到了⼤多数的标准Linux发⾏版中,只有为数不多的⼏个发⾏版尚未部署。

2 准备os:redhat7.0systemctl –version : systemd 208weblogic version:123 将程序设置成系统服务3.1 编写系统服务⽂件# vi /etc/systemd/system/myapp.service# note 如果/etc/systemd/system/myapp.service有过修改,需要进⾏更新,执⾏下⾯这个命令# systemctl daemon-reload# note 查看服务是否被正确识别# systemctl list-unit-files|grep myapp[Unit]# note 服务描述,写有意义的内容,便于识别Description=myapp service[Service]Type=simple# note 设置应⽤的⼯作⽬录WorkingDirectory=/myapp_pathExecStart=/myapp_path/startMyApp.shExecStop=/bin/kill -s TERM $MAINPID[Install]WantedBy=multi-user.target3.2 查看系统服务⽂件是否被识别systemctl list-unit-files|grep myapp--------------------------myapp.service disabled4 编写程序启动脚本# vi /myapp_path/startMyApp.sh----------------------------------------------------# note !/bin/sh# note上⾯这⾏很重要,会报203错误# note 最好先cd到程序⽬录cd /myapp_path#使⽤java的绝对路径。

Linux系统服务自动启动脚本

Linux系统服务自动启动脚本

Linux系统服务自动启动脚本Linux系统是一种广泛应用的操作系统,在服务器和个人电脑上都得到了广泛的应用。

为了保证系统服务的及时启动,我们需要使用自动启动脚本来管理各种服务。

本文将介绍Linux系统服务自动启动脚本的使用方法和注意事项。

一、什么是Linux系统服务自动启动脚本?Linux系统服务自动启动脚本是一种用于管理系统服务的脚本文件。

它可以在系统启动时自动运行,并根据预设的配置文件,启动、停止或重启指定的服务。

通过自动启动脚本,我们可以实现系统服务的自动管理,提高系统的稳定性和可靠性。

二、自动启动脚本的编写1. 脚本文件的位置一般情况下,自动启动脚本文件存放在/etc/init.d/目录下。

这是Linux系统中默认的脚本存放位置。

你也可以根据自己的需要将脚本文件存放在其他位置,但要确保系统能够找到并正确执行脚本。

2. 脚本内容的编写自动启动脚本的编写需要注意以下几点:- 根据系统要求,脚本文件必须以#!/bin/bash开头,以告诉系统使用bash作为解释器执行脚本。

- 在脚本的最开始,应该加上适当的注释,说明脚本的用途和功能。

- 脚本中应该包含启动、停止和重启服务的代码。

可以使用特定的命令如systemctl、service等来实现。

- 脚本应该提供start、stop和restart等选项,以便用户在执行脚本时可以选择不同的操作。

- 在脚本的结尾处,应该添加exit命令来结束脚本的执行。

三、自动启动脚本的使用方法使用自动启动脚本可以提高系统服务管理的效率,下面是使用自动启动脚本的基本步骤:1. 编写脚本文件按照前面所述的规范编写自动启动脚本文件,并保存在适当的位置。

2. 设置脚本文件的执行权限使用chmod命令给脚本文件添加执行权限,例如:```chmod +x /etc/init.d/myscript```3. 添加脚本到自启动列表使用chkconfig命令将脚本添加到系统的自启动列表中,例如:```chkconfig --add myscript```4. 启动服务使用service命令启动服务,例如:```service myscript start```至此,你的自动启动脚本已经完成了配置和启动。

Linux系统服务启动脚本使用Shell脚本实现服务的自动启动和停止

Linux系统服务启动脚本使用Shell脚本实现服务的自动启动和停止

Linux系统服务启动脚本使用Shell脚本实现服务的自动启动和停止在Linux系统中,服务是非常重要的组成部分。

服务可以是Web服务器、数据库服务器或其他重要后台程序。

为了方便管理,我们经常需要将这些服务设置为开机自启动,并能够方便地手动启动和停止。

为了实现这一目标,我们可以使用Shell脚本来编写启动和停止服务的脚本。

Shell脚本是一种在Unix/Linux系统中非常常见的脚本编程语言,它可以用来自动化执行任务和管理系统。

下面,我将简要介绍如何使用Shell脚本来实现服务的自动启动和停止。

首先,我们需要创建一个Shell脚本文件,命名为“service.sh”。

在这个文件中,我们需要定义两个函数,分别用来启动和停止服务。

例如,我们以启动Nginx服务为例,可以按照以下方式编写脚本:```shell#!/bin/bash# 启动服务start_service() {echo "Starting Nginx service..."/usr/sbin/nginxecho "Nginx service started."}# 停止服务stop_service() {echo "Stopping Nginx service..."/usr/sbin/nginx -s stopecho "Nginx service stopped."}# 根据命令行参数选择启动或停止服务case "$1" instart)start_service;;stop)stop_service;;*)echo "Usage: $0 {start|stop}";;esac```在上面的脚本中,我们首先定义了两个函数,即“start_service”和“stop_service”。

这些函数分别用来启动和停止Nginx服务。

Linux系统服务自动启停脚本使用Python编写的Linux系统服务自动启停工具

Linux系统服务自动启停脚本使用Python编写的Linux系统服务自动启停工具

Linux系统服务自动启停脚本使用Python编写的Linux系统服务自动启停工具Linux操作系统提供了强大的服务管理机制,使得系统管理员可以方便地启动、停止、重启以及管理各种服务。

为了简化这一过程,我们可以使用Python编写的自动启停脚本,实现对Linux系统服务的自动管理。

本文将介绍如何编写这样的脚本,并提供一个简单的示例。

## 1.脚本概述在开始之前,我们先来了解一下Linux系统服务的启停原理。

Linux 系统中的服务通常以daemon进程的形式运行,这些进程可以通过执行特定命令来启动、停止或重启。

我们的脚本将使用Python的subprocess模块,通过执行这些命令来对服务进行管理。

## 2.准备工作在编写脚本之前,我们需要先确定要管理的服务以及相应的命令。

我们可以通过运行`systemctl list-units --type=service`命令来列出所有的服务及其状态。

选择一个你想要管理的服务,记录下启动、停止、重启服务所需要执行的命令。

## 3.编写脚本接下来,我们开始编写自动启停脚本。

首先,我们需要导入Python 的subprocess模块,用于执行命令。

```pythonimport subprocess```接着,我们定义一个函数`start_service`来启动服务,函数的参数是服务的启动命令。

```pythondef start_service(command):subprocess.run(command.split())```类似地,我们可以定义`stop_service`和`restart_service`函数来停止和重启服务。

```pythondef stop_service(command):subprocess.run(command.split())def restart_service(command):subprocess.run(command.split())```现在,我们可以在脚本的主函数中调用这些函数,来实现对服务的自动管理。

Linux进程自动重启脚本使用Python编写的Linux进程自动重启脚本

Linux进程自动重启脚本使用Python编写的Linux进程自动重启脚本

Linux进程自动重启脚本使用Python编写的Linux进程自动重启脚本在Linux系统中,进程的稳定运行对于系统的正常运行至关重要。

然而,由于各种原因,进程可能会异常终止,导致系统功能受限甚至崩溃。

为了保证进程的持续运行,我们可以编写一个自动重启脚本来监控并在进程异常终止时重新启动它。

本文将介绍如何使用Python编写一个简单的Linux进程自动重启脚本。

在编写脚本之前,我们需要确保已经安装了Python解释器,并且熟悉基本的Python编程知识。

首先,我们需要导入所需的模块。

在这个脚本中,我们将使用subprocess模块来执行Shell命令,使用time模块来添加时间间隔,使用os模块来获取当前用户信息。

```pythonimport subprocessimport timeimport os```接下来,我们定义一个函数来监控进程状态并实现自动重启的逻辑。

这个函数接受两个参数:进程名称和重启次数。

```pythondef auto_restart_process(process_name, restart_limit):count = 0while count < restart_limit:process = subprocess.Popen(['pgrep', process_name],stdout=subprocess.PIPE)if municate()[0]:print(f"{process_name} is running.")else:print(f"{process_name} is not running. Restarting...")subprocess.call([f"systemctl restart {process_name}"],shell=True)count += 1time.sleep(5) # 等待5秒后再次检测进程状态# 在这里调用auto_restart_process函数,并传入需要监控的进程名称和重启次数auto_restart_process('example_process', 3)```上述代码首先定义了一个计数变量count,用于记录重启次数。

Linux系统自动重启脚本使用Python编写的用于自动重启Linux系统的工具

Linux系统自动重启脚本使用Python编写的用于自动重启Linux系统的工具

Linux系统自动重启脚本使用Python编写的用于自动重启Linux系统的工具自动重启是一种方便快捷的方式来解决系统故障或意外崩溃的问题。

在Linux系统中,我们可以使用Python编写一个自动重启脚本来实现这一功能。

本文将介绍如何使用Python编写一个用于自动重启Linux系统的工具。

一、引言Linux系统是一种稳定可靠的操作系统,但难免会遇到一些突发的故障或崩溃。

为了确保系统的连续运行,我们需要一种自动重启的机制来解决这些问题。

使用Python编写的自动重启脚本可以帮助我们快速重启系统,提高系统的可用性和稳定性。

二、功能需求在开始编写自动重启脚本之前,我们需要确定一些功能需求:1. 监测系统状态:脚本需要能够监测系统的状态,包括CPU、内存和磁盘使用情况等。

当系统达到某个预设的阈值时,脚本将触发重启操作。

2. 定时重启:脚本应该能够根据预设的时间间隔自动重启系统。

这样可以在一定程度上避免系统故障的累积,保持系统的稳定性。

3. 日志记录:为了方便问题追溯和排查,脚本需要能够记录系统重启的日志信息。

这样可以帮助管理员更好地了解系统的运行情况。

三、实现为了实现上述功能需求,我们将使用Python编写一个自动重启脚本。

下面是一个简单的示例:```pythonimport osimport time# 设定监测阈值threshold = 80 # CPU使用率阈值(%)# 设定重启时间间隔restart_interval = 1800 # 重启时间间隔(秒)# 判断系统状态并重启def check_and_restart():while True:# 获取当前CPU使用率cpu_usage = os.popen('top -bn1 | awk "/Cpu\(s\):/ {print $2}"').readline().strip()cpu_usage = float(cpu_usage)# 判断CPU使用率是否达到阈值if cpu_usage >= threshold:# 记录重启日志with open('restart.log', 'a') as log_file:log_file.write(f'System restarted at {time.ctime()}\n')# 执行重启命令os.system('reboot')# 休眠一段时间time.sleep(restart_interval)# 主函数if __name__ == '__main__':check_and_restart()```四、使用方法1. 安装Python:在Linux系统中,可以使用包管理器安装Python,如`apt-get`或`yum`。

Linux实现脚本开机自启动

Linux实现脚本开机自启动

Linux实现脚本开机⾃启动参考链接:Ubuntu系统实现脚本开机⾃启动0、序⾔ 很多时候,我们使⽤Linux时,为了⽅便操作,需要⽤到⼀些⾃启动的脚本,对于不同的Linux系统来说,⾃启动⽅式各有不同,我这⾥记录的是Ubuntu 20.0系统的;⽂章后⾯会补充参考链接的博客部分内容,仅供参考学习使⽤。

该⽅法也可以⽤在移植系统时,把开机启动服务移植进去。

在 Ubuntu 16以前,有个很简单的 rc.local ,在这个⽂件内写上你要执⾏的命令,在开机后,系统就会以管理员权限去执⾏这些命令。

但是,这个启动脚本的控制粒度并不是很精细。

所以,在Ubuntu18 版本开始,Ubuntu使⽤了 systemd 替代了 initd 管理系统。

并且默认已经取消了 /etc/rc.local ⽂件,如果要在 Ubuntu16 以后使⽤ rc.local 这个⽅法,可以参考我i另⼀篇博⽂:。

1、建⽴开机启动服务 跳转到/etc/systemd/system⽂件夹,移植系统时也是到你的⽂件系统的这个⽂件夹; 新建开机启动服务sudo vim my_start.service[Unit]#该⽂件是⾃⼰建⽴的启动服务⽂件,#/bin/my_start.sh 是你要启动的脚本所在的路径以及⽂件名,其他保持默认格式即可Description=/bin/my_start.sh CompatibilityConditionPathExists=/bin/my_start.s h[Service]Type=forkingExecStart=/bin/my_start.shTimeoutSec=0StandardOutput=ttyRemainAfterExit=yesSysVStartPriority=99[Install]WantedBy=multi-user.target 给启动服务添加权限sudo chmod 777 my_start.service2、创建要⾃启动的脚本 因为我在第⼀步的启动服务⾥声明的启动脚本路径以及名称,所以建⽴的启动脚本名称路径要跟启动服务⾥声明的⼀致;跳转到启动服务⾥声明的/bin⽬录,添加启动脚本vim my_start.sh#!/bin/sh#该⽂件为⾃定义开机启动脚本,可以⽤该脚本执⾏⼀些你需要开机启动的脚本PASSWORD="your_password"#你如果做系统移植时,可以把 roo t的密码参数设置为 export,然后这⾥设置为 PASSWORD=${ROOT_PASSWORD},就是直接提取你的 root 密码#具体你的系统保持密码的参数是什么要看你的移植的系统了,我的是 ROOT_PASSWORDecho ${PASSWORD} | sudo -S /bin/myStart/set_net_core.sh #echo ${PASSWORD} | sudo -S 是实现脚本⾃动把执⾏sudo命令时要输⼊的密码输⼊进去#我在这⾥的脚本实现的是:启动 /bin/myStart ⽂件夹⾥的 set_net_core.sh 脚本#这种⽅法的好处就是我只需要做⼀个启动服务专门⽤来执⾏⼀个脚本去执⾏其他脚本,这样后续还有新的需要开机⾃启动脚本就只需要把执⾏命令写⼊到这⾥即可 给启动脚本添加权限 sudo chmod 777 my_start.sh3、启动脚本⾃启动服务 跳转到/etc/systemd/system⽂件夹,其实不进⼊也⾏,我这⾥为了加深记忆才重新进⼊⼀次;执⾏指令sudo systemctl enable my_start.service启动脚本⾃启动服务,然后使⽤指令reboot重启你的系统; 如果你是做系统移植需要⽤到的,你需要移植完系统,烧录后执⾏⼀次该指令,只需要执⾏⼀次即可,后续你断电关机重启都不⽤执⾏了。

linux系统etcinit.d目录下的开机自启脚本

linux系统etcinit.d目录下的开机自启脚本

linux系统etcinit.d⽬录下的开机⾃启脚本1.复制或软连接脚本到/etc/init.d/⽬录下2.脚本内容如下,加粗内容是模板性注释,不能更改。

$cat /etc/init.d/test.sh#!/bin/bash### BEGIN INIT INFO# Provides: test.sh //test.sh是⾃⼰创建的脚本名称# Required-Start: $local_fs $network $remote_fs $syslog# Required-Stop: $local_fs $network $remote_fs $syslog# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: starts the test.sh daemon //test.sh是⾃⼰创建的脚本名称# Description: starts test.sh using start-stop-daemon //test.sh是⾃⼰创建的脚本名称### END INIT INFOsudo cp /media/share/frp_0.27.0_linux_amd64.tar.gz /opt/ //开机后需要执⾏的命令3.赋权限给脚本⽂件$sudo chmod 755 /etc/init.d/test.sh4.加⼊开机启动$sudo update-rc.d /etc/init.d/test.sh defaults 90 //在ubuntu环境认可的命令,如果出现update-rc.d: error: unable to read /etc/init.d//etc/init.d/test.sh,请进⼊到/etc/init.d⽬录执⾏update-rc.d的命令。

$sudo chkconfig --add test.sh && chkconfig test.sh on //在centos环境认可的命令5.重启验证结束。

Linux系统服务自动重启脚本使用Shell脚本实现对Linux系统服务崩溃时的自动重启

Linux系统服务自动重启脚本使用Shell脚本实现对Linux系统服务崩溃时的自动重启

Linux系统服务自动重启脚本使用Shell脚本实现对Linux系统服务崩溃时的自动重启随着互联网的快速发展,Linux操作系统在服务器领域得到了广泛的应用。

在运行Linux系统时,系统服务的稳定与可靠性是至关重要的,因为服务的崩溃可能会导致系统功能的中断和数据的丢失。

为了应对服务崩溃的情况,我们可以使用Shell脚本来实现对Linux系统服务的自动重启。

Shell脚本是一种脚本语言,可以在Linux系统中执行命令和控制程序的执行流程。

通过编写Shell脚本,我们可以灵活地控制Linux系统的各种操作和功能。

在本文中,将结合Linux系统服务管理工具systemd来介绍如何编写一个自动重启脚本。

首先,我们需要创建一个Shell脚本文件,例如"autorestart.sh"。

接下来,我们需要在脚本文件中添加一些必要的命令和逻辑,以实现对特定服务的监控和自动重启。

```#!/bin/bash# 监控的服务名称SERVICE_NAME="your_service_name"# 检查服务状态check_service_status() {status=$(systemctl is-active $SERVICE_NAME) echo $status}# 重启服务restart_service() {systemctl restart $SERVICE_NAME}# 主循环while true; do# 检查服务状态status=$(check_service_status)# 服务崩溃时重启服务if [ $status != "active" ]; thenrestart_servicefi# 每10秒检测一次sleep 10done```在以上示例脚本中,我们首先定义了一个变量"SERVICE_NAME",用于指定要监控和重启的服务名称。

Linux系统服务启动自动重启Shell脚本

Linux系统服务启动自动重启Shell脚本

Linux系统服务启动自动重启Shell脚本在Linux操作系统中,服务的启动和自动重启是非常重要的任务。

为了保证系统稳定性和可靠性,我们可以编写一个Shell脚本来实现服务的自动启动和重启。

本文将介绍如何编写一个Shell脚本来实现这一功能。

一、确定需要自动重启的服务在开始编写Shell脚本之前,我们首先需要确定需要自动重启的服务。

可以通过以下命令查看当前系统运行的服务:```systemctl list-units --type=service --state=running```根据实际需求选择需要自动重启的服务,例如我们选择自动重启Apache服务。

二、编写自动重启Shell脚本打开终端,创建一个新的Shell脚本文件,例如auto_restart.sh,使用任意文本编辑器进行编辑,并添加以下内容:```#!/bin/bashservice_name="apache2" # 需要自动重启的服务名while true; dois_running=$(systemctl is-active $service_name) # 检查服务是否运行if [ "$is_running" != "active" ]; thensystemctl start $service_name # 如果服务未运行,则启动服务echo "$(date): Service $service_name restarted." >>/var/log/auto_restart.log # 记录重启日志fisleep 60 # 等待60秒后再次检查服务运行状态done```在上述脚本中,我们首先定义了需要自动重启的服务名,并使用一个无限循环来持续检查服务是否运行。

如果服务未运行,则使用systemctl命令启动服务,并将重启信息记录到/var/log/auto_restart.log文件中。

Linux系统出现故障自动重启脚本使用Shell脚本实现对Linux系统出现故障时的自动重启

Linux系统出现故障自动重启脚本使用Shell脚本实现对Linux系统出现故障时的自动重启

Linux系统出现故障自动重启脚本使用Shell 脚本实现对Linux系统出现故障时的自动重启在这篇文章中,我们将讨论如何使用Shell脚本来实现对Linux系统出现故障时的自动重启。

故障可能导致系统崩溃或无法正常运行,为了确保系统的稳定性和连续性,自动重启脚本可以帮助我们快速恢复系统的正常运行。

在开始前,我们先了解一下Shell脚本的基本知识。

Shell脚本是一种用于在操作系统上执行一系列命令的脚本语言。

它可以被用于自动执行各种任务,包括故障检测和自动重启。

要实现对Linux系统出现故障时的自动重启,我们需要编写一个Shell脚本,并将其设置为系统的自启动任务。

下面是一个简单的例子:```shell#!/bin/bashwhile truedoif [ $(pgrep -x "your_process_name") ]thenecho "Your process is running fine."elseecho "Your process has stopped. Restarting..."sudo systemctl restart your_service_namefisleep 60done```以上脚本的作用是在一个无限循环中检测指定的进程是否在运行。

如果进程正在运行,脚本将输出"Your process is running fine."的消息。

如果进程停止运行,脚本将输出"Your process has stopped. Restarting..."的消息,并通过使用systemctl命令来重启指定的服务。

在上述脚本中,你需要将"your_process_name"替换成你要检测的进程名称,将"your_service_name"替换成你要重启的服务名称。

linux下通过脚本实现自动重启程序.doc

linux下通过脚本实现自动重启程序.doc

linux下通过脚本实现自动重启程序linux下通过脚本实现自动重启程序自动重启故障相信大家都遇到过,原因也有很多,跟系统,硬件或者外界因素都有关,但是在Linux中可没有那么简单。

这里集中讨论linux实现自动重启程序的方法。

下面一起看看!自动重启脚本假定需要实现重启的程序名为test ,我们这里通过判断进程数目来判断程序是否正常。

ps -ef | grep $1 | grep -v grep | wc l 是获取$1(本例中为test)的进程数,脚本根据进程数来决定下一步的操作。

通过一个死循环,每隔1秒检查一次系统中的指定程序的进程数。

代码如下:脚本check#!/bin/sh#-----------------------------------# 函数: CheckProcess# 功能: 检查一个进程是否存在# 参数: $1 --- 要检查的进程名称# 返回: 如果存在返回0, 否则返回1.#---------------------------------------CheckProcess(){ # 检查输入的参数是否有效if [ $1 = ]; then return 1 fi #$PROCESS_NUM获取指定进程名的数目,为1返回0,表示正常,不为1返回1,表示有错误,需要重新启动PROCESS_NUM=`ps -ef | grep $1 | grep -v grep | wc -l` if [ $PROCESS_NUM -eq 1 ]; then return 0 else return 1 fi}# 检查test实例是否已经存在while [ 1 ] ; do CheckProcess test CheckQQ_RET=$? if [ $CheckQQ_RET -eq 1 ]; then# 杀死所有test进程,可换任意你需要执行的操作killall -9 test exec ./test fi sleep 1done脚本start:加入limit coredumpsize 102400,设置core file的大小,一旦程序Core Dump,有迹可寻。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux下添加脚本到开机自启动的方法
Linux配置开机自启动执行脚本的方法有很多,这里分享两种方法,分别是修改/etc/rc.local方法和chkconfig管理设置的方法,均可实现Linux配置开机自启动执行脚本的功能!
设置test.sh为开机要启动的脚本
[root@oldboy scripts]# vim /server/scripts/test.sh
[root@oldboy scripts]# cat /server/scripts/ test.sh
#!/bin/bash
/bin/echo $(/bin/date +%F_%T) >> /tmp/ test.log
方法一:修改/etc/rc.local
[root@oldboy ~]# ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 Mar 30 10:50 /etc/rc.local -> rc.d/rc.local
修改/etc/rc.local文件
[root@oldboy scripts]# tail -n 1 /etc/rc.local
/bin/bash /server/scripts/test.sh >/dev/null 2>/dev/null
重启系统,查看结果
[root@oldboy ~]# cat /tmp/test.log
2018-03-30_12:00:10
方法二:chkconfig管理
删除掉方法一的配置
[root@oldboy ~]# vim /etc/init.d/test
#!/bin/bash
# chkconfig: 3 88 88
/bin/bash /server/scripts/test.sh >/dev/null 2>/dev/null
[root@oldboy ~]# chmod +x /etc/init.d/test
添加到chkconfig,开机自启动
[root@oldboy ~]# chkconfig --add test
[root@oldboy ~]# chkconfig --list test
test 0:off 1:off 2:off 3:on 4:off 5:off 6:off 重启系统,查看结果
[root@oldboy ~]# cat /tmp/test.log
2018-03-30_12:00:10
2018-03-30_12:33:20
操作成功
关闭开机启动
[root@oldboy ~]# chkconfig test off
[root@oldboy ~]# chkconfig --list test
test 0:off 1:off 2:off 3:off 4:off 5:off 6:off 从chkconfig管理中删除test
[root@oldboy ~]# chkconfig --list test
test 0:off 1:off 2:off 3:off 4:off 5:off 6:off [root@oldboy ~]# chkconfig --del test
[root@oldboy ~]# chkconfig --list test
service test supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add test')。

相关文档
最新文档