언급하는 것을 잊어 버렸습니다. Suse Tumbleweed에서 실행되고 데스크탑은 KDE Plasma입니다.
내 디렉토리에 bin
심볼릭 링크 가 있습니다 mpv
.
$ ls -l bin/Play
lrwxrwxrwx 1 boffi users 12 Feb 11 12:33 bin/Play -> /usr/bin/mpv
Play
임의의 음악 파일을 호출하는 스크립트가 있습니다.
$ cat bin/play_alarm
#! /usr/bin/bash
files=($(find $HOME/Music/$1 -type f))
n_files=${#files[@]}
index=$(($RANDOM%$n_files))
file=${files[$index]}
body=$(
echo $file | sed -E '
s./home/boffi/Music/..
s./[01][0-9]_./.
s/\..*$//
s./. → .g
s._. .g
s| → ([^→]+)$| → <b>\1</b>|')
notify-send -u low -a "The Alarm Player" --expire-time=10000 Playing "$body" &
Play --no-video --no-terminal ${files[$index]}
mpv
내가 이해한 바로는 그 이름을 사용하여 특정 문제를 해결할 수 있지만mpv
Play
$ bin/play_alarm & sleep 10 ; killall Play ; sleep 2 ; killall mpv
[1] 1385
Play: no process found
$ Terminated
[1]+ Exit 143 bin/play_alarm
$
내 질문은 "실행 파일이 시스템에 표시하는 이름을 변경하는 방법“물론 내가 뭔가 잘못했거나, 아니면 심각한 오해를 하고 있었죠.
부록묻기 전에 play_alarm
명령줄에서 시작하면 이를 사용하여 종료할 수 있지만 killall play_alarm
일반적으로 play_alarm
플라즈마 데스크렛에 의해 시작되고 그런 다음
killall play_alarm
작동하지 않습니다.killall Play
작동하지 않습니다.killall mpv
경고 및mpv
실행 중인 모든 문제를 제거합니다.
폴리스티렌PID를 임시 파일에 저장하라고 제안했다면 저는 그렇게 하지 않는 편이 낫겠지만, 다른 모든 방법이 실패한다면...
답변1
나는 이것을 시도했고 sleep
다음과 같은 관찰을 얻었습니다.
ln -s /usr/bin/sleep slapen
./slapen 900 &
ps -ef | grep slapen
그러면 다음이 제공됩니다.
ljm 2623965 2534378 0 16:53 pts/5 00:00:00 ./slapen 900
ljm 2623968 2534378 0 16:54 pts/5 00:00:00 grep slapen
따라서 프로시저 이름은 귀하가 제안한 이름 slapen
이 아닙니다 .sleep
pkill slapen
다음을 제공합니다:
[1]+ Terminated ./slapen 900
그것이 당신에게 필요한 것 같습니다.
답변2
질문에 대한 내 의견을 명확히하기 위해,
$ ls -l ~/bin/Play
lrwxrwxrwx 1 boffi users 12 Feb 11 12:33 /home/boffi/bin/Play -> /usr/bin/mpv
$ Play --no-terminal Music/Aldous_Harding/Party/06_Horizon.opus & sleep 3 ; ps
[1] 16098
PID TTY TIME CMD
11599 pts/4 00:00:00 bash
16098 pts/4 00:00:00 mpv
16121 pts/4 00:00:00 ps
$
반면에
$ ls ~/bin/mysleep /home/boffi/bin/mysleep
$ mysleep 10 & ps
[1] 22546
PID TTY TIME CMD
11599 pts/4 00:00:00 bash
22546 pts/4 00:00:00 mysleep
22547 pts/4 00:00:00 ps
$
따라서 우리는 어떤 이유에서든 또는 아무 이유 없이 mpv
이름이 다시 변경되었다고 결론을 내릴 수 있습니다 mpv
.