AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1491672
Accepted
fixit7
fixit7
Asked: 2023-11-06 10:51:05 +0800 CST2023-11-06 10:51:05 +0800 CST 2023-11-06 10:51:05 +0800 CST

Impedir que um terminal aberto seja fechado

  • 772

Já faz muito tempo, então estou enferrujado com meus comandos.

Eu uso um script para ter lembretes. Um que estou executando exibirá "A chuva de meteoros ocorre depois da meia-noite". depois de 3 horas.

Existe uma maneira de evitar que eu feche acidentalmente um terminal que esteja com meu script de timer em execução?

Atualizar:

Aqui está meu roteiro.

#!/bin/bash
#
#  Sound alarm after specifying time and message 
# Must input time delay AND message in double quotes !!
#
#       
# ** sleep can also accept intergers ex. sleep 7.63
# Made alias for it type al 

    # Print a trace of simple commands, for commands, case commands, select commands, 
    # and arithmetic for commands and their # arguments or associated word lists after they are expanded 
    # and before they are executed. The value of the PS4 variable is # expanded and the resultant value is printed before the # command and its expanded arguments.

Red='\e[0;31m'     
BRed='\e[1;31m' 
BIRed='\e[1;91m' # ${BIRed} this works
Gre='\e[0;32m'     
BGre='\e[1;32m'
BBlu='\e[1;34m' # ${BBlu}
BWhi='\e[1;37m'
Black='\e[0;30' 
BWhite='\e[0m 1;37'
# This defines a variable containing the ANSI escape sequence to clear
# the effect of all previous ANSI escape sequences that define formatting (colors, underlining, etc).
RCol='\e[0m'; 

            

soundfile="/usr/share/sounds/My_Sounds/Alarm_Clock_Sound.mp3"

clear
amixer -D pulse sset Master 40% > /dev/null 2>&1
if [ -f "$soundfile" ];
then
     echo -e "${BGre}Soundfile is present."
else
      
  echo "File $soundfile does NOT exist."
  echo
  echo "Program will now exit."
  exit
fi

[ -z "$2" ] && {
echo 
echo -e " ${BIRed}Error!! No time value given and/or message specified !!"
echo
echo -e "   ${BBlu}Alarm Program 2018 ${RCol}"
echo
echo -e "   alarm.sh [time value in seconds] Message in double Quotes"; 
echo -e "   alarm 5m   = 5 minute alarm"
echo -e "   alarm 5h   = 5 hour alarm"
echo -e "   alarm 5d   = 5 day alarm"
echo -e "   alarm 1.5m = 1 minute 30 seconds alarm"
echo 
echo -e "   alarm.sh 1m "\"Take bread out of oven."\""  

echo 
exit 1; }
echo  -e "\033[32;5mTIMER COUNTING DOWN to $1 \033[0m"
sleep $1
{
    for ((volume = 15; volume <= 35; volume += 2)); do
        # 2> /dev/null suppresses messages for amixer AND (c)vlc
        amixer -D pulse sset Master ${volume}% > /dev/null
        sleep .5
    done
} &

mpg123 $soundfile > /dev/null 2>&1
#set back to original volume
amixer -D pulse sset Master %30

gxmessage -fg blue -font  'sans 20' -timeout 2 ' Tea is ready. !!'






 
command-line
  • 2 2 respostas
  • 804 Views

2 respostas

  • Voted
  1. stumblebee
    2023-11-06T12:22:20+08:002023-11-06T12:22:20+08:00

    Você pode executar seu script como um daemon usando o daemoncomando, que executa o script em segundo plano:

    daemon --name="yourservicename" --output=./yourlog.txt ./yourscript
    

    Para parar o daemon:

    daemon --name="yourservicename" --stop
    

    Para instalar o daemon:

    sudo apt update
    sudo apt install daemon
    

    A única outra coisa que você precisará fazer é modificar seu script para enviar suas mensagens via notify-send(conforme mencionado na sua pergunta):

    notify-send -u critical -t 0 "Meteor shower occurs after midnight."

    Ao usar -u critical -t 0as opções, a notificação permanecerá na tela até você clicar nela.

    Alternativamente, você pode usar nohup :

    nohup ./yourscript &

    Você ainda precisará modificar seu script para enviar suas mensagens notify-sendconforme descrito acima.

    • 6
  2. Best Answer
    cocomac
    2023-11-07T04:31:22+08:002023-11-07T04:31:22+08:00

    Dependendo de como você exibiria o texto, isso pode ou não funcionar para você. De forma mais geral, porém, esta é uma maneira válida de manter algo funcionando.

    Você pode usar tmux . Você precisará instalá-lo com sudo apt update && sudo apt install tmux.

    Uma vez instalado, você pode iniciar uma sessão tmux executando tmuxem um shell. Uma vez na sessão, você pode executar comandos e então fazer Ctrl+ Bseguido de Dpara ocultar a sessão. Mas, uma vez oculto, mesmo fechando o terminal, você pode voltar à sua sessão executando a tmux apartir de um shell. Você pode executar exitna sessão do tmux para, bem, sair dela.

    Na verdade , isso não impede que ele seja fechado. Porém, ele o mantém funcionando mesmo se você fechar a janela do terminal, o que pode ser suficiente para o seu caso de uso.

    • 2

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve