[Linux]开机自启

Posted 千千寰宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Linux]开机自启相关的知识,希望对你有一定的参考价值。

1 方式1:systemctl

  • 开启开机自启服务
    • systemctl enable <服务名>
  • 关闭开机自启服务
    • systemctl disable <服务名>
  • 查看开机自启服务状态
    • systemctl list-unit-files | grep <服务名>
#[demos]
systemctl enable firewall
systemctl disable firewall.service

systemctl disable sshd
systemctl enable sshd
systemctl list-unit-files | grep sshd

2 方式2:开机自启脚本

2.1 开机自启脚本编写与配置

以消息队列RabbitMQ为例

  • 编写start_rabbitmq.sh
vim /usr/local/rabbitmq/sbin/start_rabbitmq.sh

[编写自启内容]
#!/bin/bash

#erlang
export PATH=$PATH:/usr/rabbitmq/erlang/bin

#rabbitmq
export HOME=/usr/rabbitmq/rabbitmq/

/usr/rabbitmq/rabbitmq/sbin/./rabbitmq-server -detached

-detached:以后台守护进程方式运行

  • 给脚本增加可执行权限
chmod +x /usr/local/rabbitmq/sbin/start_rabbitmq.sh
  • 编辑开机自启的系统文件
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
#↓我们编写的启动脚本
/usr/local/rabbitmq/sbin/start_rabbitmq.sh
  • 给系统脚本添加执行权限
chmod +x /etc/rc.d/rc.local
  • 重启,并查看是否生效
shutdown -r now

2.2 开机自启失效的失效/故障解决方法

  • 失效错误1:"/bin/bash^M: 坏的解释器: 没有那个文件或目录"
    在Linux下编译shell运行脚本的时候出现”/bin/bash^M: 坏的解释器: 没有那个文件或目录“这样的错误如下图。
[解决办法]
使用在终端输入: sed -i \'s/\\r$//\' my-johnnyzen-shell.sh即可

[原因分析]
此shell脚本文件在Windows 下编辑过,在Windows下每一行结尾是\\n\\r,而Linux下则是\\n
sed -i \'s/\\r$//\' make-all-linux-project.sh 会把make-all-linux-project.sh中的行尾的\\r替换为空白

3 参考文档

以上是关于[Linux]开机自启的主要内容,如果未能解决你的问题,请参考以下文章

[Linux]开机自启

linux 添加开机自启项

Linux开机自启应用&开机执行脚本&监听端口应用挂掉了执行启动脚本

Linux通过脚本设置开机自启jar包

Linux设置开机自启

Linux设置开机自启