linux设置服务自动启动命令
-
使用Linux系统时,我们经常需要让某些服务在系统启动时自动启动,以保证这些服务在系统运行期间始终可用。下面将介绍几种常见的Linux设置服务自动启动的方法。
1. 使用sysvinit(SysV)启动脚本:
SysV是一种传统的Linux启动系统,通过在/etc/init.d目录中创建启动脚本,然后在/etc/rc.d/或/etc/rc*.d/目录中创建相关符号链接来实现自动启动。首先,创建一个启动脚本(以启动MySQL服务为例):
“`
sudo nano /etc/init.d/mysql
“`
在文件中输入以下内容:
“`
#!/bin/bash
### BEGIN INIT INFO
# Provides: mysql
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: MySQL Server
# Description: MySQL Server
### END INIT INFO# 脚本执行的命令
case $1 in
start)
/path/to/mysql/bin/mysqld_safe &
;;
stop)
/path/to/mysql/bin/mysqladmin shutdown
;;
restart)
$0 stop
sleep 5
$0 start
;;
*)
echo “Usage: $0 {start|stop|restart}”
exit 1
esacexit 0
“`
记得将`/path/to/mysql`替换为实际的MySQL安装路径。保存并退出。接下来,授予脚本执行权限:
“`
sudo chmod +x /etc/init.d/mysql
“`创建服务的符号链接:
“`
sudo ln -s /etc/init.d/mysql /etc/rc.d/rc3.d/S99mysql
sudo ln -s /etc/init.d/mysql /etc/rc.d/rc3.d/K01mysql
“`这些符号链接分别表示在运行级别3(多用户命令行模式)下启动(S99mysql)和停止(K01mysql)MySQL服务。
重启系统,MySQL服务将自动启动。
2. 使用Systemd启动脚本:
在一些新的Linux发行版中,如CentOS 7,Systemd已经成为默认的初始化系统。使用Systemd,可以通过创建.service文件来设置自动启动。首先,创建一个启动脚本(以启动Nginx服务为例):
“`
sudo nano /etc/systemd/system/nginx.service
“`输入以下内容:
“`
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s stop[Install]
WantedBy=multi-user.target
“`记得根据实际的Nginx安装路径进行替换。保存并退出。
接下来,更新Systemd并启动服务:
“`
sudo systemctl daemon-reload
sudo systemctl enable nginx
sudo systemctl start nginx
“`至此,Nginx服务将被设置为在系统启动时自动启动。
以上是两种常见的Linux设置服务自动启动的方法,根据你使用的发行版和初始化系统的不同,可能有所差异。根据实际情况选择合适的方法进行配置。
2年前 -
在Linux中,可以使用以下命令来设置服务自动启动:
1. chkconfig:这是一个用于管理服务启动的命令,在大多数基于RPM包管理的Linux发行版中都有。使用chkconfig命令可以设置服务在系统启动时自动启动。例如,要将httpd服务设置为自动启动,可以使用以下命令:
“`
chkconfig httpd on
“`2. systemctl:这是一个用于管理systemd服务的命令,在最新的Linux发行版中普遍使用systemd作为系统初始化和服务管理器。使用systemctl命令可以设置服务在系统启动时自动启动。例如,要将httpd服务设置为自动启动,可以使用以下命令:
“`
systemctl enable httpd
“`3. update-rc.d:这是一个用于管理SysVinit服务的命令,在一些旧版Linux发行版中仍然使用。使用update-rc.d命令可以设置服务在系统启动时自动启动。例如,要将apache2服务设置为自动启动,可以使用以下命令:
“`
update-rc.d apache2 defaults
“`4. service:这是一个用于管理SysVinit服务的命令,在一些旧版Linux发行版中仍然使用。使用service命令可以启动、停止和重启服务,但无法直接设置自动启动。要启用自动启动,可以配合update-rc.d命令使用。例如,要将nginx服务设置为自动启动,可以使用以下命令:
“`
service nginx start
update-rc.d nginx defaults
“`5. 脚本方法:除了使用命令行工具外,还可以通过编辑启动脚本来设置服务自动启动。在/etc/init.d/目录下可以找到服务的启动脚本,可以通过编辑这些脚本的内容来实现自动启动。首先将脚本文件复制到/etc/init.d/目录中,然后使用chmod命令设置脚本文件的执行权限,最后使用ln命令将脚本链接到/etc/rc.d/rcX.d/目录中(X代表运行级别)。这样,当系统启动时,脚本会被执行,实现服务的自动启动。
2年前 -
在Linux中,可以使用systemd或SysVinit来设置服务的自动启动。
一、使用systemd来设置服务的自动启动
1. 创建一个名为`service_name.service`的服务单元文件,其中`service_name`为服务的名称。该文件通常存放在`/etc/systemd/system/`目录下。
– 例如:要设置Apache服务自动启动,可以创建`apache.service`文件。2. 编辑服务单元文件,指定服务的启动命令、启动前条件、启动顺序等。
– 例如:
“`
[Unit]
Description=Apache Service
After=network.target[Service]
ExecStart=/usr/sbin/httpd -k start
Restart=on-failure[Install]
WantedBy=multi-user.target
“`
– `Description`:服务的描述信息。
– `After`:服务启动所依赖的其他单元,在此例中,服务需要在网络启动之后才能启动。
– `ExecStart`:服务的启动命令。
– `Restart`:服务在异常结束时自动重启。
– `WantedBy`:指定服务所属的目标单元,此例中表示服务随多用户模式启动。3. 保存文件并退出。
4. 使用以下命令重新加载systemd守护程序以使更改生效:
“`
sudo systemctl daemon-reload
“`5. 使用以下命令启动服务并设置开机自启:
“`
sudo systemctl start service_name
sudo systemctl enable service_name
“`6. 使用以下命令验证服务是否已经自动启动:
“`
sudo systemctl is-enabled service_name
“`二、使用SysVinit来设置服务的自动启动
1. 找到服务的启动脚本文件,这些脚本通常存放在`/etc/init.d/`目录下。
– 例如:要设置Apache服务自动启动,可以找到`/etc/init.d/httpd`文件。2. 创建服务的符号链接,将脚本链接到特定的运行级别目录下。
– 例如:将Apache服务链接到运行级别3和5目录下。
“`
sudo ln -s /etc/init.d/httpd /etc/rc3.d/S80httpd
sudo ln -s /etc/init.d/httpd /etc/rc5.d/S80httpd
“`3. 使用以下命令启动服务:
“`
sudo service service_name start
“`4. 使用以下命令设置服务开机自启:
“`
sudo chkconfig service_name on
“`5. 使用以下命令验证服务是否已经自动启动:
“`
sudo chkconfig –list | grep service_name
“`以上是Linux中使用systemd和SysVinit设置服务自动启动的方法。根据具体的发行版和版本,可能会有一些差异,请根据实际情况进行设置。
2年前