나는 기본 터미널 흰개미를 사용하여 xmonad를 실행하는 스크립트를 작성했습니다. 중요한 경우 :) xmonad에 해결책이 있을 수도 있습니다.
, ((altMask, xK_x),
spawn "termite --hold -e /home/emre/pipix.sh")
터미널에 입력하면
timeout 30 script.sh
작동하는 것 같습니다. 하지만 내가 입력할 때
termite --hold -e timeout 5 pipi.sh
이 경고 메시지가 나타납니다.
Try 'timeout --help' for more information.
내가 뭘 잘못하고 있는 걸까요? 아니면 어떻게 작동하게 할 수 있나요?
답변1
일반적으로 CLI에서 단일 옵션으로 전달되는 명령에 공백이 있는 경우 프로그램이 이것이 timeout 5 pipi.sh
세 개의 개별 입력 옵션이 아니라 단일 명령임을 알 수 있도록 명령을 따옴표로 묶어야 합니다.
termite --hold -e "timeout 5 pipi.sh"
이것은 명령줄에서 프로그램에 코드 줄을 전달하는 일반적인 문제를 기반으로 한 내 추측입니다.
답변2
이 글을 보고 여기에 올려야겠다는 생각이 들었습니다.
https://www.tecmint.com/run-linux-command-with-time-limit-and-timeout/
명령에 시간 제한을 설정해야 하는 사람은 "시간 제한"을 설치하여 명령 전에 사용해야 합니다.
광산은 xmonad.hs에서 다음과 같습니다.
, ((altMask, xK_c),
spawn "timelimit -t25 termite --hold -e /home/emre/pipi.sh")
답변3
다음은 테스트되었으며 예상대로 작동합니다.
#!/bin/sh
temp=$$
(sleep 30; kill $temp; exit) &
echo "Hello. Testing timeout with ed."
# Your never ending code goes here instead.
# Because ed is a new process you will have to kill it.
# killall ed would be replaced with the program name. killall XXX
(sleep 30; killall ed; exit) &
# run ed and put it in append mode and add a few characters.
# ed is never given the . and q! commands so it waits.
ed
a
1234
echo "Should not get here"
# Should get a Terminated message and script exits in 30 seconds.
# And the process for ed is killed is in 30 seconds..
시야