Linux Ubuntu 添加应用至 Service

习惯了诸如 " systemctl {start|status|stop|enable|disable} httpd " 等类似的命令?在Linux中如何将普通的应用程序添加进守护进程?
这里以 Shadowsocks 为例,实现在 Ubuntu 17.10上的普通的应用程序添加进守护进程以方便配置自启动。

配置service文件

新建一个文件夹,(也可以是应用程序的安装或配置位置),新建一个 " shadowsocks.service " ,分情况将配置内容粘贴到这个文件:

若在开机时自动启动
[Unit]
Description=Shadowsocks-server daemon
After=network.target

[Service]
Type=forking
PIDFile=/var/run/shadowsocks/server.pid
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p /var/run/shadowsocks
ExecStartPre=/bin/chown root:root /var/run/shadowsocks
ExecStart=/usr/local/bin/ssserver --pid-file /var/run/shadowsocks/server.pid --log-file /var/log/shadowsocks.log -c /etc/shadowsocks/config/server.json -d start
Restart=always
RestartSec=24h
User=root
Group=root
UMask=0027

[Install]
WantedBy=multi-user.target
若在系统启动后有用户登录后自动启动

修改文件权限(如果需要):

chmod 755 /etc/shadowsocks/shadowsocks.service

使用系统软连接将刚才建立的service文件指向 " /lib/systemd/system "

ln -s /etc/shadowsocks/shadowsocks.service /lib/systemd/system

最后,更新Ubuntu Service守护进程:

systemctl daemon-reload

使用 systemctl 命令操作进程:

设置开机自启:

systemctl enable shadowsocks

启动 Shadowsocks 进程

systemctl start shadowsocks

结束 Shadowsocks 进程

systemctl stop shadowsocks

重启 Shadowsocks 进程

systemctl restart shadowsocks

查看 Shadowsocks 进程运行状态

systemctl status shadowsocks

参考:

  1. x11vnc对于Ubuntu15.04以后和Ubuntu14.04以前的配置和开机自启
  2. CentOS7以root权限开机自启动程序设置详解教程 - 百度文库