首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >systemd:通过开始/停止服务

systemd:通过开始/停止服务
EN

Stack Overflow用户
提问于 2016-04-18 17:14:31
回答 1查看 1.4K关注 0票数 2

我正在尝试创建一个systemd init脚本,用于启动和停止软VPN服务器。

我发现的一个教程建议遵循init.d脚本。

代码语言:javascript
复制
#!/bin/sh
# chkconfig: 2345 99 01
# description: SoftEther VPN Server

DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
test -x $DAEMON || exit 0

case "$1" in
    start)
        $DAEMON start
        touch $LOCK
        ;;
    stop)
        $DAEMON stop
        rm $LOCK
        ;;
    restart)
        $DAEMON stop
        sleep 3
        $DAEMON start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit 0

但是我想使用systemd,所以我编写了以下服务文件。

代码语言:javascript
复制
[Unit]
Description=Softether VPN server
After=syslog.target
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop

# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300

[Install]
WantedBy=multi-user.target

但是这个脚本不能让VPN服务器继续运行。sudo systemctl status softethervpn给了我以下的状态。

代码语言:javascript
复制
● softethervpn.service - Softether VPN server
   Loaded: loaded (/lib/systemd/system/softethervpn.service; disabled)
   Active: deactivating (stop) since Mon 2016-04-18 19:11:41 CEST; 1s ago
  Process: 1463 ExecStart=/usr/local/vpnserver/vpnserver start (code=exited, status=0/SUCCESS)
 Main PID: 1463 (code=exited, status=0/SUCCESS);         : 1474 (vpnserver)
   CGroup: /system.slice/softethervpn.service
           ├─1471 /usr/local/vpnserver/vpnserver execsvc
           └─control
             └─1474 /usr/local/vpnserver/vpnserver stop

Apr 18 19:11:40 raspberrypi systemd[1]: Started Softether VPN server.
Apr 18 19:11:41 raspberrypi vpnserver[1463]: The SoftEther VPN Server service has been started.
Apr 18 19:11:42 raspberrypi vpnserver[1474]: Stopping the SoftEther VPN Server service ...
Apr 18 19:11:42 raspberrypi vpnserver[1474]: SoftEther VPN Server service has been stopped.

如何纠正我的服务文件才能正确工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-19 17:44:56

看来Type需要是forking。下面的脚本适合我(在系统的SoftEther配置文件上找到)。

代码语言:javascript
复制
[Unit]
Description=SoftEther VPN Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop

[Install]
WantedBy=multi-user.target
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36700307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档