`
cnjarchen
  • 浏览: 43582 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

利用systemctl添加自定义系统服务

 
阅读更多
systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,还是存在系统服务里吧,即:/usr/lib/systemd/system目录下
 
每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install]
 
 
[root@localhost system]# cat ntpdate.service
[Unit]
Description=Set time via NTP
After=syslog.target network.target nss-lookup.target
Before=time-sync.target
Wants=time-sync.target
 
[Service]
Type=oneshot
ExecStart=/usr/libexec/ntpdate-wrapper
RemainAfterExit=yes
 
[Install]
WantedBy=multi-user.target
 
 
Unit  描述信息
 
Description=     #描述信息
After=          #在那个程序之前启动
Before          #在那个程序之后启动
 
Service 启动信息
 
Type=     #启动类型。
          #Type=oneshot :这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置 RemainAfterExit=yes 使得 systemd 在服务进程退出之后仍然认为服务处于激活状态。
          #Type=notify :与 Type=simple 相同,但约定服务会在就绪后向 systemd 发送一个信号。这一通知的实现由 libsystemd-daemon.so 提供。
          #Type=dbus :若以此方式启动,当指定的 BusName 出现在DBus系统总线上时,systemd认为服务就绪。
          #Type=idle :systemd会等待所有任务处理完成后,才开始执行 idle 类型的单元。其他行为与 Type=simple 类似。
          #Type=forking :systemd认为当该服务进程fork,且父进程退出后服务启动成功。对于常规的守护进程(daemon),除非你确定此启动方式无法满足需求,使用此类型启动即可。使用此启动类型应同时指定 PIDFile=,以便 systemd 能够跟踪服务的主进程。
          #Type=simple :(默认值) systemd认为该服务将立即启动。服务进程不会 fork 。如果该服务要启动其他服务,不要使用此类型启动,除非该服务是socket 激活型。
 
RemainAfterExit=yes     #通知systemctl结束
User=
Group=
Restart=               #Restart=always的时候systemctl会不断重启这个脚本,这种适合程序是脚本的。
                       #Restart=no的时候不会重启,适合程序软件。
 
 
ExecStart=  #后面跟程序的绝对路径,如果有启动参数,后面加上,如果程序没有参数不需要添加ExecStop这条语句
ExecStop=    #后面跟程序的绝对路径,如果有停止参数,后面加上
PIDFile=     #加上程序PID文件绝对路径
 
 
install 安装信息
 
WantedBy=          #WantedBy=multi-user.target
分享到:
评论

相关推荐

    把j项目启动脚本 添加为服务

    `systemd`是现代Linux发行版广泛采用的服务管理工具,它允许我们定义自定义服务单元配置文件来管理我们的应用。 创建一个名为`jproject.service`的服务单元文件,内容可能如下: ```ini [Unit] Description=j项目...

    centos7封装自定义镜像且包含初始化脚本和一些常用软件合集

    封装镜像的关键步骤是利用ISO映像制作工具,如`isomd5sum`或`mkisofs`,将系统盘和初始化脚本打包成ISO文件。在当前环境中,我们有一个名为`qt_centos7.iso`的文件,这可能意味着已经完成了封装过程,其中可能包含了...

    linux中systemd的源代码(从ubuntu 16.4.4获取)

    8. **cgroups 和资源控制**:systemd利用控制组(cgroups)来限制和服务隔离,源代码揭示了如何分配CPU、内存和其他资源,以及如何限制服务的执行时间。 9. **启动性能优化**:systemd通过并行化服务启动来提升启动...

    麒麟桌面操作系统安装虚拟机

    虚拟化技术允许我们在一个物理机器上模拟多个独立的计算环境,每个环境可以安装并运行不同的操作系统,极大地提高了硬件资源的利用率和开发测试的灵活性。 在麒麟桌面操作系统中安装虚拟机,首先需要确保系统已经...

    WEB服务器安装配置完全手册

    4. 启动服务:使用命令(如`apachectl start`或`systemctl start apache2`)启动Apache服务。 三、Nginx Web服务器安装 1. 获取Nginx:访问Nginx官网,选择适合的操作系统版本下载。 2. 安装:同样,Windows使用...

    在linux下如何设置开机自动启动程序.pdf

    Systemd服务文件通常位于`/etc/systemd/system`,并且遵循链接机制,利用`rcX.d`目录来控制不同运行级别的服务启动顺序。 总的来说,设置Linux开机自动启动程序涉及对系统启动流程的理解,包括运行级别的概念以及...

    ntp.tar.gz_NTP 获取_ntp 系统时间_获取网络时间

    3. **启动和启用NTP服务**:安装并配置好NTP后,你需要启动NTP服务,通常是`sudo systemctl start ntpd`,并设置它在系统启动时自动启动,`sudo systemctl enable ntpd`。 4. **时间同步**:NTP服务会定期与指定的...

    linux下文件系统监视

    接着,在`/etc/audit/audit.rules`中添加自定义的审计规则,例如监视某个文件: ```bash -a always,exit -F path=/path/to/file -k my-rule-key ``` 这里的`-a`定义了审计动作,`always,exit`表示对每次系统调用的...

    Apache 相关实验步骤,不太完整,参考即可,希望每个学计算机的都可少掉头发。

    5. **开启服务开机启动**:使用`systemctl enable httpd`确保Apache在系统启动时自动运行。 6. **查看与测试**:通过浏览器访问服务器的IP地址或自定义域名来测试Apache服务是否正常工作。 **Samba 文件共享服务**...

    nginx 启动脚本

    “工具”可能指的是使用`systemctl`、`service`或`init.d`命令来管理Nginx服务,这些工具是Linux系统中管理后台服务的标准方法。例如,`systemctl start nginx`启动Nginx,`systemctl status nginx`查看状态,`...

    实现程序开机自动运行

    在Unix或Linux系统中,开机启动程序通常涉及编辑`/etc/rc.local`文件,或者在`/etc/init.d`目录下创建服务脚本,然后使用`chkconfig`或`systemctl`来控制服务的启动和停止。 7. **Mac OS X**: 在Mac OS X系统中...

    Linux8.5+Zabbix6.0+Grafana8.4.3实现数据中心运维信息的可视化展示

    通过以上步骤,我们成功地在Linux8.5环境下搭建了Zabbix6.0 LTS监控系统,并利用Grafana8.4.3实现了数据中心运维信息的可视化展示。这将极大地提升运维效率,帮助团队及时发现并解决问题,保障数据中心的稳定运行。...

    CentOS下搭建Git,Gerrit Jenkins版本控制系统

    通过本教程的学习,您将能够掌握如何在Linux服务器上配置这些工具,并利用它们来实现高效的代码管理和持续集成流程。 ##### 1.2 文档范围 本文档涵盖了从系统安装到具体工具配置的所有步骤。不仅包括了基础的Linux...

    centos 7 64位系统时钟同步Chrony安装和依赖包

    在IT行业中,尤其是在服务器管理与网络服务领域,保持系统时钟的精确同步是至关重要的。CentOS 7作为一款广泛使用的64位Linux发行版,其时间同步功能对于日志记录、分布式系统以及安全审计等任务都具有决定性影响。...

    利用DNSPOD+SQUID搭建自己的CDN

    - **添加域名**:在控制台添加需要使用CDN加速的域名,并设置相应的解析记录。 - **配置智能解析策略**:根据实际需求,设置智能解析策略,比如基于地理位置的解析规则。 对于不同的操作系统环境,DNSPOD的配置方法...

    node_exporter-0.16.0.linux-amd64.tar.gz

    4. 启动服务:运行`systemctl start node_exporter`启动服务,并使用`systemctl enable node_exporter`设置开机启动。 一旦Node Exporter运行,它将在默认的9100端口上提供一个HTTP端点,提供 Prometheus 格式的...

    Linux zabbix自定义监控及报警实现过程解析

    在本文中,我们将深入探讨如何在Linux环境中利用Zabbix自定义监控磁盘I/O的tps(Transactions Per Second)指标,并设置报警机制。 首先,我们的目标是监控`iostat`命令中的`tps`数据,该指标代表每秒处理的事务数...

    NTP 设置

    **NTP 设置详解** NTP(Network Time Protocol,网络时间协议)是一种用于在计算机网络上同步时间的协议。它的设计目标是确保网络上的所有...通过不断学习和实践,我们可以更好地利用 NTP 提高系统的可靠性和安全性。

    nginx源码分析-高性能服务器编写

    例如,通过添加自定义模块实现动态内容处理、安全防护等功能。这种方式不仅能够充分利用Nginx的高性能特性,还能根据具体应用场景灵活扩展功能。 #### 附录 ##### 编译器参数 编译Nginx时可以选择不同的编译器...

    httpd 2.4.57 相关的所有rpm包

    在Linux系统中,Apache HTTP Server(通常简称为httpd)是一个广泛应用的开源Web服务器,用于托管网站和服务。...通过深入理解其特性和配置,可以有效地利用这个工具为用户提供高效、安全的Web服务。

Global site tag (gtag.js) - Google Analytics