前往小程序,Get更优阅读体验!
立即前往
发布

Systemd

原创
作者头像
Yolo-Yolo
发布2024-12-13 09:00:32
发布2024-12-13 09:00:32
8800
代码可运行
举报
运行总次数:0
代码可运行

内核引导

在计算机启动时,BIOS(基本输入输出系统)会进行自检,然后根据启动顺序从指定设备(通常是硬盘)加载引导加载器(如GRUB)。引导加载器负责加载Linux内核到内存中。

2. 运行init

内核加载完成后,它会启动第一个用户空间进程,即init进程,其PID(进程ID)为1。在较旧的系统中,init的类型可能是SysV、Upstart或Systemd。

  • SysV init 使用/etc/inittab配置文件。
  • Upstart 使用/etc/inittab/etc/init/*.conf配置文件。
  • Systemd 使用/usr/lib/systemd/system/etc/systemd/system配置文件。

3. 系统初始化

init进程根据配置文件和运行级别来启动系统服务和守护进程。

4. 建立终端

系统初始化完成后,会建立终端,允许用户登录。

5. 用户登录系统

用户在终端输入用户名和密码,通过认证后登录系统。

运行级别

Linux系统有7个运行级别,每个级别对应不同的系统状态和启动的服务集合。

项目示例:配置Systemd服务

以下是一个简单的Systemd服务配置文件示例,用于在系统启动时自动启动一个简单的Python脚本。

  1. 创建Python脚本 hello.py
代码语言:javascript
代码运行次数:0
复制
python#!/usr/bin/env python3
import datetime

print("Hello, world! The time is:", datetime.datetime.now())
  1. 使脚本可执行
代码语言:javascript
代码运行次数:0
复制
bashchmod +x /path/to/hello.py
  1. 创建Systemd服务文件 hello.service
代码语言:javascript
代码运行次数:0
复制
ini[Unit]
Description=Hello World Service

[Service]
ExecStart=/path/to/hello.py
Type=simple

[Install]
WantedBy=multi-user.target
  1. 复制服务文件到Systemd目录
代码语言:javascript
代码运行次数:0
复制
bashsudo cp hello.service /etc/systemd/system/
  1. 启用服务
代码语言:javascript
代码运行次数:0
复制
bashsudo systemctl enable hello.service
  1. 启动服务
代码语言:javascript
代码运行次数:0
复制
bashsudo systemctl start hello.service

这个示例展示了如何创建一个简单的Python脚本,并将其配置为Systemd服务,以便在系统启动时自动运行。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 内核引导
  • 2. 运行init
  • 3. 系统初始化
  • 4. 建立终端
  • 5. 用户登录系统
  • 运行级别
  • 项目示例:配置Systemd服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档