我设法创建了一个 systemd 服务脚本,该脚本使我的应用程序能够在后台运行……
此 systemdscript 使用 %i 来启动此服务的特定实例。
我正在寻找一种方法来停止我的脚本的所有实例。
sudo service servicename@* stop
不起作用……
ExecStart 运行一个运行 Java 应用程序的脚本
任何帮助表示感谢
答案1
您正在寻找的命令是:
sudo killall nameofservice
您可以使用 Tab 键来自动完成。
答案2
你最好使用
sudo killall -9 nameofservice
当然,您需要知道服务的名称,它不一定等于其init.d
脚本名称。
-9
该命令的参数killall
说明在手册页中
man 7 signal
只要在命令行输入即可获得:
First the signals described in the original POSIX.1-1990 standard.
Signal Value Action Comment
──────────────────────────────────────────────────────────────────────
SIGHUP 1 Term Hangup detected on controlling terminal
or death of controlling process
SIGINT 2 Term Interrupt from keyboard
SIGQUIT 3 Core Quit from keyboard
SIGILL 4 Core Illegal Instruction
SIGABRT 6 Core Abort signal from abort(3)
SIGFPE 8 Core Floating point exception
SIGKILL 9 Term Kill signal
SIGSEGV 11 Core Invalid memory reference
SIGPIPE 13 Term Broken pipe: write to pipe with no
readers
SIGALRM 14 Term Timer signal from alarm(2)
SIGTERM 15 Term Termination signal
SIGUSR1 30,10,16 Term User-defined signal 1
SIGUSR2 31,12,17 Term User-defined signal 2
SIGCHLD 20,17,18 Ign Child stopped or terminated
SIGCONT 19,18,25 Cont Continue if stopped
SIGSTOP 17,19,23 Stop Stop process
SIGTSTP 18,20,24 Stop Stop typed at terminal
SIGTTIN 21,21,26 Stop Terminal input for background process
SIGTTOU 22,22,27 Stop Terminal output for background process
The signals SIGKILL and SIGSTOP cannot be caught, blocked, or ignored.
答案3
感谢您的所有建议,但我在这里找到了答案:https://serverfault.com/a/797926
问题是,我的星号被 bash 转义了...
使用时sudo service 'servicename@*' stop
一切都按预期工作