如何停止systemd服务

roy*_*roy 4 linux startupscript systemd

我正在尝试为flume创建systemd服务文件,创建/etc/systemd/system/flume-ng.service了以下内容

[Unit]
Description=Apache Flume

[Service]
Environment=FLUME_CLASSPATH=/opt/flume/current/lib/
ExecStart=/usr/bin/nohup /usr/bin/flume-ng agent -c /etc/flume-ng/conf -f /etc/flume-ng/conf/flume.conf --name a1 &

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

哪些启动了水槽服务,但我如何将其作为服务停止?

在这种情况下,我不得不用PID杀死.

谢谢

Umu*_*mut 8

你可以执行systemctl stop flume-ng.service.执行时,默认操作是发送SIGTERM到主进程并等待可配置的时间以查看进程是否已终止.如果进程没有终止,则systemd发送SIGKILL执行该作业的信号.如果主进程已经分离出其他进程,systemd也将把它们关闭,因为它们都存在于同一个cgroup中.

ExecStop=除非您有不同的关闭服务的方法,否则您不需要拥有指令.


Mun*_*nir 5

您需要ExecStop在该[Service]部分的选项中添加要用于停止服务的命令。

就像是:

[Service]
Environment=FLUME_CLASSPATH=/opt/flume/current/lib/
ExecStart=/usr/bin/nohup /usr/bin/flume-ng agent -c /etc/flume-ng/conf -f /etc/flume-ng/conf/flume.conf --name a1 &
ExecStop=/usr/bin/flume-ng agent stop
Run Code Online (Sandbox Code Playgroud)

或任何命令停止 flume-ng

然后,您可以通过停止服务systemctl stop flume-ng

阅读位于https://www.freedesktop.org/software/systemd/man/systemd.service.html的手册,以获取可用于控制服务的全套选项。