Arch 目前采用的是 systemd init 系统,和 ubuntu 14 的 upstart 差异比较大,以至于我连怎么运行 daemon 都查了半天……
理论上采用 systemd 的系统使用下面的方法配置服务都是可行的,实际配置时可能需要根据具体情况有所变动。

Aria2 这类应用程序不需要 root 运行,由普通用户运行即可。参考 Arch Wiki ,普通用户可以使用 systemctl --user 方式启动服务。这里就以我想要的 Aria2 为例进行服务配置。

  • 首先编写好 Aria2 的配置文件,创建好下载 session 文件和 log 文件,放家目录下即可,注意权限问题。配置文件我就不贴上了,google 一搜一大堆,只是这里有个关键问题要注意,千万不要把 daemon=true 添加进配置文件,否则会与 systemd 发生冲突导致服务启动失败!!

  • 编写用户 unit 文件,目录可以是~/.config/systemd/user/aria2.service,或者 /etc/systemd/user/aria2.service,前者为只有自己可用,后者为所有非 root 用户均可用,我在这里选择了后者。unit 文件如下。

    [Unit]
    Description=Aria2 Service
    [Service]
    ExecStart=/usr/bin/aria2c --conf-path=%h/aria2/aria2.conf
    [Install]
    WantedBy=default.target
    

    这里变量 %h 为当前用户的家目录,其他变量可参考 systemd Arch Wiki。保存退出,注意文件权限。

  • 然后 $ systemctl --user start/stop/restart/status aria2 即可管理 aria2 服务

  • 为了方便启动,我还编写了 .desktop Entry,这样在 Gnome 下点击应用按钮就可以很方便地启动 aria2 服务了。

    [Desktop Entry]
    Type=Application
    Name=Aria2 User Service
    Comment=The aria2 service for non-root users
    Exec=systemctl --user start aria2
    Terminal=false
    Categories=Utilities;Download;
    Icon=/usr/share/icons/aria2.png
    StartupNotify=true
    

    保存为aria2.desktop/usr/share/applications/ 就行啦!如果不嫌麻烦的话,还可以像我一样给它添加个图标 Icon=/usr/share/icons/aria2.png

好啦,启动 Aria2 服务后,使用自己喜欢的前端就可以管理下载了。我使用的是 Chrome 插件形式的 YAAW 网页前端,点击这里前往添加