自启动服务的文件配置

一、创建服务文件

  1. 创建systemd服务文件:类似地,检查nginx的systemd服务文件是否存在于/etc/systemd/system/目录下,通常名为nginx.service。如果不存在,创建一个

    sudo nano /etc/systemd/system/nginx.service
    
    • 添加文件内容
    [Unit]
    Description=The NGINX HTTP and Reverse Proxy Server
    After=network.target
    
    [Service]
    Type=forking
    ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
    ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s stop
    
    [Install]
    WantedBy=multi-user.target
    
  2. 启动并使服务开机自启

    sudo systemctl start nginx
    sudo systemctl enable nginx
    

二、服务文件的详细配置

[Unit]

  • Description 描述服务的作用,这是一个自由格式的字符串,用于在服务列表中标识服务。
  • Documentation: 指定服务的文档URL或路径。
  • Wants: 表示该服务启动时,还希望启动的其他服务。这并不表示依赖关系,只是表达了启动顺序的偏好。
  • Requires: 指定依赖的服务。如果这些服务没有运行,当前服务将不会启动。
  • After: 指定在哪些服务之后启动本服务。
  • Before: 指定在哪些服务之前启动本服务。
  • BindsTo: 类似于 Requires,但如果指定的服务退出,本服务也会被停止。
  • PartOf: 指定本服务是另一个服务的一部分,如果那个服务停止,本服务也会停止。
  • OnFailure: 如果服务启动失败,可以指定要启动的其他服务。
  • Conflicts: 指定与哪些服务冲突,不能与它们同时运行。

[Service]

  • Type: 定义服务的启动类型。可能的值包括 simple, forking, oneshot, dbus, notify, 和 idle
    • simple: 服务不会派生子进程。
    • forking: 服务会派生子进程,父进程会退出。
    • oneshot: 服务只执行一次任务,然后退出。
    • dbus: 服务通过 D-Bus 启动。
    • notify: 服务启动后会通知 systemd。
    • idle: 服务会在其他任务完成后启动。
  • ExecStart: 启动服务时要运行的命令。
  • ExecStartPre: 在 ExecStart 命令之前运行的命令。
  • ExecStartPost: 在 ExecStart 命令之后运行的命令。
  • ExecReload: 重新加载配置时要运行的命令。
  • ExecStop: 停止服务时要运行的命令。
  • ExecStopPost: 在 ExecStop 命令之后运行的命令。
  • Restart: 定义服务退出时的重启策略。可能的值包括 no, on-success, on-failure, on-abnormal, on-abort, 和 always。
  • RestartSec: 定义重启服务前等待的时间。
  • TimeoutSec: 定义服务启动和停止的超时时间。
  • Environment: 设置环境变量。
  • EnvironmentFile: 从文件中读取环境变量。
  • User: 运行服务的用户。
  • Group: 运行服务的用户组。
  • WorkingDirectory: 设置服务的工作目录。
  • RootDirectory: 设置服务的根目录。
  • Nice: 设置服务的 CPU 优先级。
  • IOScheduling: 设置服务的 I/O 调度类别。
  • StandardInput: 定义服务的标准输入。
  • StandardOutput: 定义服务的标准输出。
  • StandardError: 定义服务的标准错误输出。
  • PrivateTmp: 为服务创建一个私有的 tmp 目录。
  • PrivateNetwork: 为服务创建一个私有的网络命名空间。
  • ProtectSystem: 限制服务对系统文件的访问。
  • ProtectHome: 限制服务对用户主目录的访问。

[Install]

  • WantedBy: 指定服务所在的 target。当该 target 被激活时,服务也会被启动。
  • RequiredBy: 类似于 WantedBy,但表示强依赖关系。
  • Alias: 为服务设置别名。
  • Also: 指定在安装或卸载服务时,要同时操作的其他服务单元。

你可能感兴趣的:(网络)