小编voi*_*ter的帖子

如何让我的 systemd 服务通过特定用户运行并在启动时启动?

我刚刚从 Ubuntu 服务器 14 升级到版本 15。升级后我无法让我的 upstart 脚本工作,并且读到 systemd 是新的默认值。我远非 Linux 专家,所以请放轻松 :-)

这是我之前的新贵脚本:

description "NZBGet upstart script"

setuid robert
setgid robert

start on runlevel [2345]
stop on runlevel [016]

respawn

expect fork

script
    exec nzbget -D
end script

pre-stop script
    exec nzbget -Q
end script
Run Code Online (Sandbox Code Playgroud)

基于systemd wiki 页面暴发户,我使用那里提供的表格在我的新 systemd 服务文件中尽可能地映射事物:

[Unit]
Description=NZBGet Service

[Service]
Type=forking
ExecStart=/usr/local/bin/nzbget -D
ExecStop=/usr/local/bin/nzbget -Q
Restart=on-failure
Run Code Online (Sandbox Code Playgroud)

该文件位于/home/robert/.config/systemd/user/nzbget.service. 要手动启动服务,我一直在做:

$ systemctl --user start nzbget
Run Code Online (Sandbox Code Playgroud)

这很好用。但是,当我退出 SSH 会话时,该服务将关闭。此外,它不会在启动或用户登录时启动。我希望它的行为与作为新贵服务的行为相同:我希望它在启动时启动,不断运行,并作为特定用户。

我需要做什么才能获得此配置?

systemd

197
推荐指数
2
解决办法
39万
查看次数

标签 统计

systemd ×1