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 / 1224027
Accepted
onemorequestion
onemorequestion
Asked: 2020-04-05 04:20:34 +0800 CST2020-04-05 04:20:34 +0800 CST 2020-04-05 04:20:34 +0800 CST

Como iniciar um script corretamente a partir de um script executado pelo terminal inicial no Ubuntu?

  • 772

Suponha que você tenha um iniciador em seu painel que inicia um script chamado foo.sh no modo terminal.

foo.sh que inicia outro script chamado bar.sh em segundo plano.

me deparo com problemas:

Primeiro: o nome do arquivo escrito de bar.sh é diferente.

Segundo e principal: o script bar.sh não é independente e morre quando o terminal é fechado.

Eu testei isso em um antigo 16.04. máquina.

foo.sh

#!/bin/bash

#read an user input
read -r -t 60 -p ":" foo
echo "$foo"

#call bar script
/home/$USER/bar.sh "10" "$foo" & disown

#show if bar.sh was started
echo $?

#sleep a short time to see the echo's
sleep 3

bar.sh

#!/bin/bash

#sleep some time
[[ -n "$1" ]] && sleep $1

#then write user input to file called output
echo "$2 - sleept $1 seconds" >> /home/$USER/output

Se o tempo para dormir em foo for maior que em bar, o arquivo de saída é gravado, mas chamado de saída? (com um ? no final).

Mas se o tempo for maior em bar, então bar será morto quando foo terminar e o terminal for fechado.

Alguma idéia de como configurar corretamente uma instância em segundo plano do bar.sh?

Outro terminal que permanece aberto não é uma solução para mim.

THX!

PS Como um comentário sugerido, devo fazer minha pergunta aqui.

scripts command-line panel bash
  • 1 1 respostas
  • 64 Views

1 respostas

  • Voted
  1. Best Answer
    learner
    2020-04-05T19:58:03+08:002020-04-05T19:58:03+08:00

    Como você disse que funcionou, estou dando isso como resposta, com informações adicionais.

    "nohup" significa "Sem Hungup". Como o nome sugere, ele continuará executando o comando sem desligar, mesmo se a sessão for desconectada. Ele é usado para executar comandos no servidor remoto que levariam muito tempo para serem concluídos (backup de um banco de dados etc).

    Normalmente, os logs do script (se houver) são armazenados no arquivo ~/nohup.out. Mas você pode optar por capturar os logs, anexando ou substituindo os logs do conteúdo antigo pelo novo. ">" O sinal único maior que substituirá os logs antigos pelos novos. ">>" double maior que o sinal anexará os logs ao final do arquivo.

    Estou usando este formato abaixo para executar a mesma coisa no crontab. Neste caso, estou substituindo os logs antigos. /path/to/script_folder/script_name.sh > /path/to/script_folder/logs/script_name.log 2>&1

    • 0

relate perguntas

  • Remover o menu de status online, mas manter o menu de logout?

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