避免误杀systemd服务进程
This commit is contained in:
parent
04dc303730
commit
aa3259583f
@ -142,6 +142,22 @@ has_full_systemd_suite() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
systemd_main_pid() {
|
||||||
|
local name="$1"
|
||||||
|
local main_pid
|
||||||
|
|
||||||
|
if ! has_systemd_unit "$name"; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
main_pid="$(systemctl show --property MainPID --value "$(service_unit_name "$name")" 2>/dev/null || true)"
|
||||||
|
if [ -z "${main_pid:-}" ] || [ "$main_pid" = "0" ]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$main_pid"
|
||||||
|
}
|
||||||
|
|
||||||
pid_matches_project() {
|
pid_matches_project() {
|
||||||
local name="$1"
|
local name="$1"
|
||||||
local pid="$2"
|
local pid="$2"
|
||||||
@ -231,8 +247,15 @@ stop_legacy_process() {
|
|||||||
local name="$1"
|
local name="$1"
|
||||||
local pid
|
local pid
|
||||||
local pid_file
|
local pid_file
|
||||||
|
local managed_pid
|
||||||
pid_file="$(service_pid_file "$name")"
|
pid_file="$(service_pid_file "$name")"
|
||||||
pid="$(read_pid "$name" || true)"
|
pid="$(read_pid "$name" || true)"
|
||||||
|
managed_pid="$(systemd_main_pid "$name" || true)"
|
||||||
|
|
||||||
|
if [ -n "${pid:-}" ] && [ -n "${managed_pid:-}" ] && [ "$pid" = "$managed_pid" ]; then
|
||||||
|
rm -f "$pid_file"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "${pid:-}" ] && kill -0 "$pid" >/dev/null 2>&1; then
|
if [ -n "${pid:-}" ] && kill -0 "$pid" >/dev/null 2>&1; then
|
||||||
kill "$pid" >/dev/null 2>&1 || true
|
kill "$pid" >/dev/null 2>&1 || true
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user