首页 > 系统相关 >init 和 systemd:Linux守护进程

init 和 systemd:Linux守护进程

时间:2023-03-12 17:11:25浏览次数:45  
标签:systemd stop start init Linux 进程

现代 Linux 都采用 systemd 来作为守护进程,例如在 Ubuntu 18.04 上它们都指向同一个 systemd,

$ ll /sbin/init 
/sbin/init -> /lib/systemd/systemd*$ ll /bin/systemd
/bin/systemd -> /lib/systemd/systemd*

而 init 和 systemd 的区别如下,

initsystemd 都是 Linux 的 init 守护进程,但最好使用后者,因为它在现代的 Linux 发行版中很常用。init 使用 service,而 systemd 用 systemctl 管理 Linux 服务。

init 守护进程是 Linux 内核执行的第一个进程,它的进程 ID (PID) 始终为 1。它的目的是初始化、管理和跟踪系统服务和守护进程。换句话说,init 守护进程是系统上所有进程的父进程。

要创建一个服务,需要编写 shell 脚本,并存储在 /etc/init.d/ 目录下,通过 service 命令启动、停止、重新启动服务。例如如下的 /etc/init.d/myservice 脚本,

#!/bin/bash
# chkconfig: 2345 20 80
# description: Description comes here....
 
# Source function library.
. /etc/init.d/functions
 
start() {
    # TODO: code to start app comes here 
}
 
stop() {
    # TODO: code to stop app comes here 
}
 
case "$1" in 
    start)
       start
       ;;
    stop)
       stop
       ;;
    restart)
       stop
       start
       ;;
    status)
       # TODO: code to check status of app comes here 
       ;;
    *)
       echo "Usage: $0 {start|stop|restart|status}"
esac
 
exit 0

systemd(system daemon)是现代的 Linux 系统所使用的守护进程(pid 也为 1),其功能更加强大。要编写 systemd 服务,需要在 /etc/systemd/system/ 目录下编写一个 .service 文件。

有了 .service 文件之后,可以通过 systemctl 命令来启动、停止、重新启动服务。

以下为一个 myservice.service 文件的样例,

[Unit]
Description=Some Description
Requires=syslog.target
After=syslog.target
 
[Service]
ExecStart=/usr/sbin/<command-to-start>
ExecStop=/usr/sbin/<command-to-stop>
 
[Install]
WantedBy=multi-user.target

 

Over.

 

 

标签:systemd,stop,start,init,Linux,进程
From: https://www.cnblogs.com/gaowengang/p/17208550.html

相关文章

  • Linux基础之less命令实战
    1less命令的介绍less命令的功能是用于分页显示文件内容。分页显示的功能与more命令很相像。但more命令只能从前向后浏览文件内容,而less命令则不仅能从前向后(PageDown键),还可......
  • linux下的ptrace函数
    Linux下的ptrace函数ptrace系统调用的用途ptrace系统调从名字上看是用于进程跟踪的,它提供了父进程可以观察和控制其子进程执行的能力,并允许父进程检查和替换子进程的内核......
  • Linux 嵌入式预备知识
    硬件启动 从EMMC启动10100110  1.bootmode01参考手册/芯片手册2.bootdevices  只有内部启动[1:0]的时候才会需要选择启动设备  支持NORflash,NANDfl......
  • 实现函数init() 初始化数组为全0、实现print() 打印数组的每个元素 、实现reverse()
    #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<stdlib.h>//【题目名称】//数组操作//【题目内容】//创建一个整形数组,完成对数组的操作//实现函数init()初......
  • Linux pkill 命令
    原文地址:https://www.runoob.com/linux/linux-comm-pkill.htmlLinuxpkill用于杀死一个进程,与 kill 不同的是它会杀死指定名字的所有进程,类似于 killall 命令。kill......
  • Linux操作系统CentOS 7忘记root密码解决办法
    root用户忘记密码解决办法重启系统输入命令:reboot,并在重启的前三秒内按向下的按键,目的是为为了不让它进入系统,而是停留在开机页面,如下图所示编辑文档在开机页面按方向......
  • linux中cp-a和cp-r的区别是什么
    原文地址:http://net.sanhaostreet.com/it/202203/1513250.htmllinux中cp-a和cp-r的区别是什么Linuxcp(英文全拼:copyfile)命令主要用于复制文件或目录。语法cp[options......
  • 在Linux中如何注销其他 SSH 用户
    今天我们简单介绍一下如何踢掉其他通过ssh连接到系统中的用户。 Pixelatedword Linux madefromcubes,mosaicpattern如果你通过ssh登录了一个远程L......
  • Linux邮件mail.rc配置,发件服务配置
    Linux邮件mail.rc配置前提条件邮箱需要开启smtp功能关闭selinux和防火墙1、 安装mailxyuminstall-ymailx2、 配置/etc/mail.rc#在文件结尾添加以下内容se......
  • Bclinux yum源无法使用
    内网yum源案例:问题现象:  解决方案:将enable=1修改为enabled=0问题即可解决[root@localhostcloudman]#vi/etc/yum/pluginconf.d/license-manager.conf[main......