다른 프로그램이 실행되지 않을 때 systemd를 사용하여 프로그램을 종료하는 방법

다른 프로그램이 실행되지 않을 때 systemd를 사용하여 프로그램을 종료하는 방법

potify-tui 프로그램이 종료되면 Spotify 서비스도 종료되기를 원합니다. 그러한 서비스를 어떻게 작성하시겠습니까?

답변1

본질적으로 다음과 같습니다.

while true; do
  if ! pgrep spotify-tui; then
    pkill spotifyd
    exit
  fi
  sleep 10
done

그런 다음 원하는 백그라운드 서비스를 추가하세요.

답변2

워치독을 사용하여 프로그램이 정지되는지 확인할 수 있습니다. 보세요

관리자를 위한 시스템, 15부

답변3

이것이 서비스를 만드는 방법입니다.

~/.local/share/systemd/spotifyd-autokill.service- 데몬 호출

[Unit]
Description=spotifyd auto-killer (when spotify-tui is not running)

[Service]
# Full path here is required
ExecStart="/home/zeioth/.local/share/systemd/user/daemons/spotifyd-autokill.sh"

[Install]
WantedBy=multi-user.target

~/.local/share/systemd/user/daemons/spotifyd-autokill.sh- 진짜 일을 해라

#!/bin/bash

while true; do

  if `ps -ef | grep "alacritty --title spotify-tui" | awk {'print $2" "$8'} | grep -v grep > /dev/null`; then
    echo "Spotify-tui is running: No action taken."
  else
    echo "Spotify-tui is not running: Closing spotifyd."
    killall -9 "spotifyd" 2> /dev/null
  fi
  sleep 120

done

~/.local/bin/spotify-tui- Spotify-tui를 열 때 Spotify를 실행하세요.

spotifyd
alacritty --title 'spotify-tui' --config-file ~/.config/alacritty/monokai.yml -e zsh -c 'source ~/.zshrc && cd ~/workspaces/git-forks/spotify-tui && cargo run' &

관련 정보