修改文件
Linux系统启动过程中,会加载一些文件,在这些文件中做更改即可。
文件列表包括但不仅限:
/etc/profile
/etc/bashrc
/etc/profile.d/*.sh
/etc/rc.local
# 在最后一行加入想要开机执行的操作,如图:开机启动mysql
vim /etc/rc.local
写shell脚本
从修改文件的方法中,我们得知,在 /etc/profile.d/下的*.sh文件都将在系统启动的过程中被执行,因此,我们只要自己写一个*.sh文件,并赋予它执行的权限即可。
vim /etc/profile.d/xxx.sh
# 编写xxx.sh内容
chmod +x /etc/profile.d/xxx.sh
使用systemctl管理
systemctl是管理系统服务程序的工具,如果让我们的程序成为系统服务之一,就可以使用systemcl管理了。
在/usr/lib/systemd/system/下,新增服务描述文件xxx.service,按服务文件规则编写。
服务文件规则
[Unit]
Description=服务描述
After=类别描述
[Service]
Type=forking # forking指后台运行
# 注意ExecStart、ExecReload、ExecStop中的xxx是你自己的程序,且需要绝对路径!!!
ExecStart=xxx start # 服务启动命令
ExecReload=xxx restart # 服务重启命令
ExecStop=xxx stop # 服务停止命令
PrivateTmp=True # 给服务独立分配临时内存空间
[Install]
WantedBy=multi-user.target # 该服务为多用户服务
示例服务文件(nginx.service)
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target