Linux系统如何用systemctl设置开机自启动服务?

 更新时间:2026年07月13日 14:27:55   作者:sayyy  
想知道如何在Linux中用systemctl设置程序开机自启动吗?本文以RedHat7和WebLogic为例,手把手教你编写systemd服务文件、创建启动脚本,并解决常见的203错误,让你轻松管理系统服务,实现自动启动和日志查看

1 说明

设置开机自启动,需要用到systemctl工具。

systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。

systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。

在Linux生态系统中,Systemd被部署到了大多数的标准Linux发行版中,只有为数不多的几个发行版尚未部署。

2 准备

  • os:redhat7.0
  • systemctl –version : systemd 208
  • weblogic version:12

3 将程序设置成系统服务

3.1 编写系统服务文件

# vi /etc/systemd/system/myapp.service
----------------------------------------------------
#如果/etc/systemd/system/myapp.service有过修改,需要进行更新,执行下面这个命令
#systemctl daemon-reload
#查看服务是否被正确识别
#systemctl list-unit-files|grep myapp
[Unit]
#服务描述,写有意义的内容,便于识别
Description=myapp service
[Service]
Type=simple
#设置应用的工作目录
WorkingDirectory=/myapp_path
ExecStart=/myapp_path/startMyApp.sh
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target

3.3 查看系统服务文件是否被识别

# systemctl list-unit-files|grep myapp
--------------------------
myapp.service                      disabled

至此,系统服务文件编写完成。

4 编写程序启动脚本

# vi /myapp_path/startMyApp.sh
----------------------------------------------------
#!/bin/sh
#上面这行很重要,会报203错误
#最好先cd到程序目录
cd /myapp_path
#使用java的绝对路径。如果找不到java可执行程序,也会报203错误
/usr/java/jdk1.8/bin/java -jar myapp.jar

启动脚本设置执行权限

# chmod +x myapp.sh

5 测试系统服务

5.1 启动系统服务

# systemctl start myapp.service

5.2 停止系统服务

# systemctl stop myapp.service

5.3 查看系统服务是否成功启动

# systemctl status myapp.service -l

5.4 可能碰到的203错误

ExecStart参数指定启动脚本路径不对,会提示203错误。(改对就好了。)

启动程序脚本(.sh文件)中未指定脚本解析器,会提示203错误。(在文件开头添加:#!/bin/sh)

启动程序脚本(.sh文件)没有执行权限,会提示203错误。(chmod +x myapp.sh)

6 将服务设置成开机自启动

# systemctl enable myapp.service
# systemctl list-unit-files|grep myapp
--------------------------
myapp.service                      enabled

反向命令:

# systemctl disable myapp.service
# systemctl list-unit-files|grep myapp
--------------------------
myapp.service                      disabled

6 查看服务的控制台日志

相当于tail -f。

# journalctl -flu myapp.service

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux使用Rsync+Sersync实现文件实时同步

    Linux使用Rsync+Sersync实现文件实时同步

    本文详细介绍了使用Rsync和Sersync实现文件实时同步的方法,Sersync监控客户端文件变化并调用Rsync同步至服务器端,优化了同步效率与错误处理机制,适合大规模文件同步场景,需要的朋友可以参考下
    2026-06-06
  • linux mount报错:you must specify the filesystem type的解决方法

    linux mount报错:you must specify the filesystem type的解决方法

    这篇文章主要介绍了linux mount报错:you must specify the filesystem type的解决方法,文中给出了详细的解决方法示例,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • 在Linux系统中查找最大的文件的命令详解

    在Linux系统中查找最大的文件的命令详解

    在 Linux 系统中,管理磁盘空间是一项重要的任务,尤其是在长期使用的系统中,为了有效地管理磁盘空间,找到并处理这些大文件变得尤为重要,所以本文给大家介绍了在Linux系统中查找最大的文件的命令方法,需要的朋友可以参考下
    2024-11-11
  • Linux中串口检查状态的实用方法分享

    Linux中串口检查状态的实用方法分享

    在 Linux 系统中,串口通信是非常常见的操作,尤其在嵌入式系统、工业设备以及其他需要串行通信的场景中,本文为大家整理了一些Linux中串口检查状态的实用方法,希望对大家有所帮助
    2025-01-01
  • 在Linux上完整搭建Apache HTTP服务器的详细步骤

    在Linux上完整搭建Apache HTTP服务器的详细步骤

    Apache HTTP Server(简称 Apache)是世界上最流行的 Web 服务器软件之一,本文将带你从零开始在 Linux 系统上完整搭建 Apache 服务器,并结合 Java Web 应用进行实战部署,需要的朋友可以参考下
    2026-04-04
  • centos7修改网卡后无法上网问题解决过程

    centos7修改网卡后无法上网问题解决过程

    大家好,本篇文章主要讲的是centos7修改网卡后无法上网问题解决过程,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Canonical通过Flutter启用Linux桌面应用程序(推荐)

    Canonical通过Flutter启用Linux桌面应用程序(推荐)

    这篇文章主要介绍了Canonical通过Flutter启用Linux桌面应用程序,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • linux使用tcpdump命令监视指定网络数据包的方法

    linux使用tcpdump命令监视指定网络数据包的方法

    linux使用tcpdump命令监视指定网络数据包的方法,大家参考使用吧
    2013-12-12
  • 将宝塔面板linux版装在/www以外的目录的方法

    将宝塔面板linux版装在/www以外的目录的方法

    很多云VPS系统盘,也就是根目录(系统盘)都是10个G,宝塔安装完整环境基本5个G没有了,用了不到几个月,随着日志文件等乱七八糟的东西增加,面板就提示根目录低于1个G,随后mysql就莫名其妙挂掉,这里就为大家分享一下将面板安装到别的目录的方法
    2018-05-05
  • Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17详细配置

    Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17详细配置

    算不上经验,只能说是个人总结.在搭建过程中遇到的问题.并记录下来.刚开学习始搭建环境的朋友少走一些弯路.这没有过多的参数,并不是什么高性能网站的部署.本人经验有限,在此分享一些遇到的问题.
    2012-06-06

最新评论