Fedora 启动时自动启动用户(非 root 用户)进程

Fedora 启动时自动启动用户(非 root 用户)进程

我有一台运行 Fedora OS 的虚拟机。假设该虚拟机有四个用户(A、B、C、D)。该虚拟机在每个用户下运行一个进程。因此,当该虚拟机重新启动时,我应该怎么做才能让这些进程在相应的用户下自动启动。

前提是

a 是在 A 用户下启动进程的自定义命令

b 是在 B 用户下启动进程的自定义命令

c 是在 C 用户下启动进程的自定义命令

d 是在 D 用户下启动进程的自定义命令

a、b、c、d 是 root 用户无法使用的命令。它们仅对相应的用户可用。

谢谢

答案1

为进程创建单独的 Systemd 初始化脚本。对于进程 A,创建文件/etc/systemd/system/A.service并向其中添加类似以下内容:

[Unit]
Description=Process A
After=network.target

[Service]
User=userA
Type=forking
ExecStart=/some/command/to/run --arg1 --arg2
Restart=on-failure
StartLimitInterval=5min
StartLimitBurst=4

[Install]
WantedBy=multi-user.target

根据需要自定义(Restart、StartLimitInterval、StartLimitBurst 等...)

然后启用它

systemctl enable A.service

并开始

systemctl start A.service

答案2

您可以使用 /etc/crontab 和 @reboot 时间吗?/etc/crontab 的格式在时间指定后采用用户名,并以该用户身份运行进程。

@reboot A /path/to/a
@reboot B /path/tob

等等。

相关内容