📜  systemd 服务位置 (1)

📅  最后修改于: 2023-12-03 15:20:26.778000             🧑  作者: Mango

systemd 服务位置

简介

systemd 是一个系统管理守护进程,它是目前主流 Linux 系统中的一个组件。

使用 systemd 可以统一管理系统中的服务,包括启动、停止、重启、状态查看等操作。

在使用 systemd 管理服务时,服务的配置文件需要存放在特定的位置。

服务配置文件位置

systemd 服务的配置文件通常以 .service 后缀结尾,存放在以下目录:

  • /usr/lib/systemd/system/:系统级别的服务文件存放在此目录下。例如,sshd.service、cron.service 等服务。
  • /etc/systemd/system/:用户级别的服务文件存放在此目录下。例如,自定义服务文件。

在这两个目录下,系统会自动扫描并加载这些服务文件。但是需要注意,对于用户级别的服务,需要使用 systemctl --user 命令启动、停止、重启等操作。

配置文件格式

systemd 服务的配置文件采用 INI 文件格式,包含以下几个部分:

  • [Unit]:定义服务的依赖关系和其他元数据。例如,可以指定一个服务依赖于网络可用、启动后需要等待其他服务。

    [Unit]
    Description=My Service
    After=network-online.target postgresql.service
    
  • [Service]:定义服务本身的行为。例如,可以指定启动命令、工作目录、环境变量等信息。

    [Service]
    User=webuser
    ExecStart=/usr/local/bin/myapp
    WorkingDirectory=/usr/local/myapp
    Environment=MYAPP_PORT=8080
    
  • [Install]:定义服务的启动级别和安装位置。通常不需要进行配置。

    [Install]
    WantedBy=multi-user.target
    
示例

以下是一个简单的 systemd 服务配置文件,它启动一个 Python Web 应用程序:

[Unit]
Description=My Python Web App
After=network-online.target

[Service]
User=webuser
ExecStart=/usr/bin/python /opt/myapp/app.py
WorkingDirectory=/opt/myapp
Environment=APP_PORT=8080

[Install]
WantedBy=multi-user.target

在创建完该文件后,使用以下命令启动该服务:

systemctl start myapp.service
总结

systemd 服务的配置文件存放在 /usr/lib/systemd/system//etc/systemd/system/ 目录下,采用 INI 文件格式。

该文件包含 [Unit][Service][Install] 三个部分,分别定义服务的元数据、行为和安装位置。

通过 systemd 可以统一管理和自动加载系统中的服务,提高了系统管理的效率。