如何在 ubuntu 中将安装的包制作成服务?

如何在 ubuntu 中将安装的包制作成服务?

我已经在 Ubuntu22 上使用这些命令安装了 ocserv 包:

mkdir /usr/local/src/ocserv
cd /usr/local/src/ocserv
wget ftp://ftp.infradead.org/pub/ocserv/ocserv-0.10.9.tar.xz
unxz ocserv-0.10.9.tar.xz
tar xvf ocserv-0.10.9.tar
cd ocserv-0.10.9
./configure --sysconfdir=/etc/ && make && make install

ocserv 包已安装,并且可以使用以下命令运行:

ocserv -c /etc/ocserv/ocserv.conf

我需要它作为服务运行。你能帮我吗?

  • 由于一些考虑,我无法使用 Linux 存储库来安装此包。

答案1

首先为该服务创建一个 systemd 单元:

systemctl edit --force --full ocserv.service

内容如下:

[Unit]
Description=OCServ service
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=on-failure
RestartSec=1
User=root
ExecStart=/usr/local/sbin/ocserv -c /etc/ocserv/ocserv.conf

[Install]
WantedBy=multi-user.target

保存并启用新服务:

systemctl enable --now ocserv.service

您可以使用以下命令查看其状态:

systemctl status ocserv.service

答案2

systemctl status ocserv 它应该自动为您创建服务。如果您正在谈论 openconnect服务器

然而如果你正在谈论VPN客户端,并且你希望客户端自动连接到VPN服务器启动执行以下步骤

nano /etc/systemd/system/openconnect.service

[Unit]
Description=Connect to VPN
After=network.target

[Service]
Type=simple
Environment=password=correcthorsebatterystaple
ExecStart=/bin/sh -c 'echo password | sudo openconnect -u username --passwd-on-stdin vpn.dixmata.com'
Restart=always

[Install]
WantedBy=multi-user.target


sudo systemctl daemon-reload
sudo systemctl enable openconnect.service --now

答案3

感谢 Sergiu,通过对他的说明进行一些修改,我最终成功在 ubuntu 中将 ocserv 作为系统服务运行。

一开始我想编辑 Sergiu 的帖子,但后来我觉得可能不对。所以我把编辑后的说明放在这里。

首先为该服务创建一个 systemd 单元:

systemctl edit --force --full ocserv.service

内容如下:

[Unit]
Description=OCServ service
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=on-failure
RestartSec=1
User=root
ExecStart=/usr/local/sbin/ocserv --foreground --pid-file /var/run/ocserv.pid --config /etc/ocserv/ocserv.conf

[Install]
WantedBy=multi-user.target

保存并启用新服务:

systemctl enable --now ocserv.service

您可以使用以下命令查看其状态:

systemctl status ocserv.service

如果服务处于非活动状态或者出现任何错误:

systemctl restart ocserv.service

并重新检查服务状态:

systemctl status ocserv.service

相关内容