要在Linux启动时自动执行命令或脚本,主要有以下两种方法:
方法一:使用/etc/rc.local文件
- 编写需要自动执行的脚本
在本地目录编写需要自动执行的脚本,例如创建一个名为test.sh的脚本,内容如下:
#!/bin/bash
echo "hello world"
- 将脚本拷贝到/etc目录下
将编写好的脚本拷贝到/etc目录下,例如执行下列命令:
sudo cp test.sh /etc/
- 修改/etc/rc.local文件
在/etc/rc.local文件中添加需要执行的脚本,执行下列命令打开rc.local文件:
sudo vim /etc/rc.local
在rc.local文件中添加脚本执行的命令,例如:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# 自动执行test.sh脚本
sh /etc/test.sh
exit 0
- 重启Linux系统
执行下列命令重启Linux系统:
sudo reboot
完成以上操作后,在Linux系统启动时会自动执行/etc/rc.local文件中指定的脚本,即执行test.sh脚本并输出"hello world"。
方法二:使用systemd服务
- 编写需要自动执行的脚本
在本地目录编写需要自动执行的脚本,例如创建一个名为test.sh的脚本,内容如下:
#!/bin/bash
echo "hello world"
- 编写systemd服务文件
在本地目录下编写systemd服务文件,例如创建一个名为test.service的文件,内容如下:
[Unit]
Description=Test Service
[Service]
ExecStart=/etc/test.sh
[Install]
WantedBy=multi-user.target
- 将服务文件拷贝到/etc/systemd/system目录下
将编写好的服务文件拷贝到/etc/systemd/system目录下,执行下列命令:
sudo cp test.service /etc/systemd/system/
- 重加载systemd服务
在Linux系统中执行下列命令来重载systemd服务:
sudo systemctl daemon-reload
- 启动systemd服务并设置开机启动
执行下列命令启动systemd服务并设置开机启动:
sudo systemctl start test
sudo systemctl enable test
- 重启Linux系统
执行下列命令重启Linux系统:
sudo reboot
完成以上操作后,在Linux系统启动时会自动执行systemd服务中指定的脚本,即执行test.sh脚本并输出"hello world"。
以上两种方法都可以在Linux启动时自动执行命令或脚本,具体选择哪一种方法可以根据实际需求进行选择。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解如何在 Linux 启动时自动执行命令或脚本 - Python技术站