如何在linux系统中设置开机自动启动 (linux设置开机自动启动)

如何在Linux系统中设置开机自动启动

Linux系统是一个开源的操作系统,因其稳定、安全以及灵活的特性,在各个领域都被广泛应用。在Linux系统中,我们可以通过设置开机自动启动来方便地管理我们开机需要运行的程序或服务。本文将详细介绍如何在Linux系统中设置开机自动启动。

一、使用systemd启动器

systemd是Linux系统中较新的启动器,它用于管理系统各个方面的服务。在Linux系统的大部分发行版中,采用systemd作为默认的启动器。下面介绍如何使用systemd设置开机自动启动服务或程序。

1. 将需要开机自动启动的服务或程序设置为服务

在Linux中,我们可以使用systemd将需要开机自动启动的服务或程序设置为服务。服务的优点是方便管理、控制、启动和关闭。下面以开机自动启动Nginx为例进行演示:

“`

1. 在/etc/systemd/system/目录下创建nginx.service文件;

2. 编辑nginx.service文件,输入以下内容:

[Unit]

Description=The NGINX HTTP server

After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]

Type=forking

PIDFile=/run/nginx.pid

ExecStartPre=/usr/in/nginx -t

ExecStart=/usr/in/nginx

ExecReload=/bin/kill -s HUP $MNPID

ExecStop=/bin/kill -s TERM $MNPID

[Install]

WantedBy=multi-user.target

“`

通过上面的代码,我们可以看到Nginx服务的各个配置。启动方式为forking,PID文件为/run/nginx.pid,服务启动前会执行nginx -t测试配置,服务启动时会执行/usr/in/nginx命令,重启服务时会执行/bin/kill -s HUP $MNPID命令,停止服务时会执行/bin/kill -s TERM $MNPID命令。

3. 运行以下命令启动nginx.service服务:

sudo systemctl start nginx.service

4. 使用以下命令检查服务是否已经启动:

sudo systemctl status nginx.service

如果服务已经启动,则会打印出Nginx服务的状态信息。

5. 使用以下命令将服务设置为开机自动启动:

sudo systemctl enable nginx.service

2. 使用rc.local脚本启动程序

rc.local是Linux系统中常用的脚本文件之一,它可以在系统启动时自动执行。在rc.local脚本中,我们可以设置需要在系统启动时运行的命令或程序。下面介绍如何使用rc.local脚本启动程序。

1. 使用以下命令打开rc.local文件:

sudo nano /etc/rc.local

2. 在rc.local文件中添加需要开机自动启动的程序命令。例如,启动OpenVPN时,我们可以添加以下命令:

sudo openvpn –config /etc/openvpn/client.ovpn

在上述代码中,我们需要指定OpenVPN客户端的配置文件路径。如果我们希望启动其他程序,只需要将对应的程序命令添加到rc.local文件中即可。

3. 使用以下命令保存rc.local文件并退出:

Ctrl + X,按Y键,再按Enter键

4. 运行以下命令将rc.local文件设置为可执行文件:

sudo chmod +x /etc/rc.local

这样,我们就可以在Linux系统重启后自动执行rc.local文件中设置的命令或程序。

二、使用systemd-timer定时器

除了使用systemd启动器和rc.local脚本设置开机自动启动程序,我们还可以使用systemd-timer定时器来定时启动程序。下面介绍如何使用systemd-timer定时器进行设置。

1. 创建需要定时启动的服务或程序

在Linux系统中,我们可以使用systemd的timer来定时启动服务或程序。下面以每天自动备份MySQL数据库为例进行演示:

我们需要创建一个名为backup.timer的定时器配置文件,确保其启动截止时间是下一天早上。使用以下命令创建文件:

sudo nano /etc/systemd/system/backup.timer

编辑文件,加入以下代码:

“`

[Unit]

Description=Back up database

[Timer]

OnCalendar=*-*-* 5:30:00

Unit=backup.service

[Install]

WantedBy=timers.target

“`

在上述代码中,我们配置了计划每天早上5:30自动执行数据库备份。backup.service表示在定时器触发时启动的服务。

2. 创建需要启动的服务

创建名为backup.service的文件,文件内容如下:

“`

[Unit]

Description=Dly backup of MySQL database

[Service]

Type=oneshot

ExecStart=/bin/bash -c “/usr/bin/mysqldump -u root -pPASSWORD database > /var/backups/$(date +%Y-%m-%d)-backup.sql”

[Install]

WantedBy=multi-user.target

“`

文件中ExecStart中mysqldump命令的部分可以根据各自的需要自行修改。

3. 使用以下命令启动服务并确认启动:

sudo systemctl start backup.service

sudo systemctl status backup.service

4. 使用以下命令启动定时器并确认启动:

sudo systemctl start backup.timer

sudo systemctl status backup.timer

5. 使用以下命令将定时器设置为开机自动启动:

sudo systemctl enable backup.timer

三、使用init.d脚本

在Linux系统中,我们也可以使用init.d脚本设置开机自动启动。在使用init.d脚本时,我们需要将脚本存储在/etc/init.d/目录下。下面介绍如何使用init.d脚本设置开机自动启动。

1. 创建需要启动的服务的init.d脚本

下面以启动一个名为application_server的服务为例进行演示。我们需要创建一个init.d脚本,我们可以复制其他已经存在的init.d脚本进行修改。下面是一个模板脚本:

“`

#!/bin/sh

# chkconfig: 2345 99 01

# description: application_server

start(){

echo “Starting application_server”

/usr/bin/application_server

}

stop(){

echo “Stopping application_server”

killall application_server

}

case “$1” in

start)

start

;;

stop)

stop

;;

restart)

stop

start

;;

*)

echo “Usage: /etc/init.d/application_server {start|stop|restart}”

exit 1

;;

esac

exit 0

“`

在该脚本中,我们需要替换/usr/bin/application_server为我们需要启动的命令或程序的路径。

2. 将脚本文件复制到/etc/init.d/目录下,并设置脚本的权限

在完成上面的操作后,我们需要将脚本文件复制到/etc/init.d/目录下,并设置脚本的权限。使用以下命令进行复制和权限设置:

sudo cp /path/to/application_server /etc/init.d/application_server

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

3. 使用以下命令启动服务:

sudo service application_server start

4. 使用以下命令将服务设置为开机自动启动:

sudo chkconfig –level 2345 application_server on

结束语

通过上面的介绍,我们可以看到,在Linux系统中设置开机自动启动的方法有多种。使用systemd启动器、rc.local脚本、systemd-timer定时器以及init.d脚本都是常见的方法。根据需要选择适合的方法进行设置即可。

相关问题拓展阅读:

linux开机自启动命令

用户想要在linux开机的时候自启动相关的程序。那我们要怎么设置呢?下面由我为大家整理了linux下开机自启动命令的相关知识,希望对大家有所帮助!

  linux下开机自启动命令

.开机启动时自动运行程序

  Linux加载后, 它将初始化硬件和设备驱动, 然后运行之一个进程init。init根据

配置文件

继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。

  例慧明如:编辑 /etc/rc.d/rc.local 文件,在文件最末加上一行”xinit”或”startx”,可以在开机启动后直接进入X-Window。

  扩展:其他情况下linux自启动程序命令

.登录时自动运行程序

  用户登录时,bash首先自动执行系统管理员建立的全局登录script :/etc/profile。然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、 /.profile,但只执行更先找到的一个。

  因此,只需根据实枣祥际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。

.退出登录时自动运行程序

  退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。例如,在/.bash_logout中加入命令”tar -cvzf c.source.tgz *.c”,则在每次退出登录时自动执行 “tar” 命令备份 *.c 文件。

.定期自动运行程序

  linux有一个称为crond的守护程序,主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户可以通过crontab 命令来建立、修改、删除这些命令文件。

  例如,建立文件crondFile,内容为”Jan * HappyBirthday”,运行”crontab cronFile”命令后,每当元月23日上午9:00系统自动执行”HappyBirthday”的程序(“*”表示不管当天是星期几)。 (/etc/crontab中配置命令即可)也可以

.定时自动运行程序一次

  定时执行命令at 与crond 类似(但它只执行一次):命令在给定的时间执行,但不自动重复。at命令的一般格式为:at time ,在指定的时间执行file文件中所给出的所有命令。也可直接从键盘输入命令:

.创建开机自启动脚本

) 将你的启动脚本复制到 /etc/init.d目录下

  以下假设你的脚本文件名为 test。

) 设置脚本文件的权限

  $ sudo chmod 755 /etc/init.d/test

) 执行如下命令将脚本放到启动脚本中去:

  $ cd /etc/init.d

  $ sudo update-rc.d test defaults 95

  注:其中数字95是脚本启动的顺前岩告序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。该命令的输出信息参考如下:

  update-rc.d: warning: /etc/init.d/test missing LSB informationupdate-rc.d: see

  卸载启动脚本的方法:

  $ cd /etc/init.d

  $ sudo update-rc.d -f test remove

  命令输出的信息参考如下:

  Removing any system startup links for /etc/init.d/test … /etc/rc0.d/K95test /etc/rc1.d/K95test /etc/rc2.d/S95test /etc/rc3.d/S95test /etc/rc4.d/S95test /etc/rc5.d/S95test /etc/rc6.d/K95test

linux设置开机自动启动的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux设置开机自动启动,如何在linux系统中设置开机自动启动,linux开机自启动命令的信息别忘了在本站进行查找喔。


数据运维技术 » 如何在linux系统中设置开机自动启动 (linux设置开机自动启动)