Eu defino algumas variáveis de ambiente em um terminal e, em seguida, executo meu script. Como posso puxar as variáveis no script? Preciso saber seus valores. Simplesmente referir-se a eles como $MY_VAR1
não funciona; ele está vazio.
Estou procurando algo como command1 ; command2
ou seja, como correr command2
atrás command1
, mas gostaria de planejar a execução de command2
quando command1
já está em execução.
Isso pode ser resolvido apenas digitando o command2
e confirmando por Enter suposto que o command1
não está consumindo entrada padrão e que command1
não produz muito texto na saída, tornando impraticável digitar (caracteres digitados são misturados com a command1
saída).
Eu tenho:
um servidor Linux que eu conecto via SSH no IP 203.0.113.0 porta 1234
um computador doméstico (atrás de um roteador), IP público 198.51.100.17, que é Debian ou Windows+Cygwin
Qual é a forma mais fácil de ter uma pasta /home/inprogress/
sincronizada (em ambas as direções), um pouco como rsync
, mas com um observador do sistema de arquivos , para que cada vez que um arquivo seja modificado, ele seja imediatamente replicado no outro lado? (ou seja, não há necessidade de chamar manualmente um programa de sincronização)
Estou procurando uma solução de linha de comando / sem GUI, pois o servidor é sem cabeça.
Existe uma solução integrada Linux/Debian?
disown
faz com que um shell não envie SIGHUP para seu trabalho rejeitado quando o shell termina e
remove o trabalho rejeitado do controle de trabalho do shell.
O primeiro é o resultado do segundo? Em outras palavras, se um processo iniciado a partir de um shell for removido do controle de tarefas do shell de alguma forma, o shell não enviará SIGHUP para o processo quando o shell terminar?
disown -h
ainda mantém um processo sob o controle de trabalho de um shell. Significa que disown -h
faz com que um processo ainda receba o SIGHUP enviado do shell, mas configura a ação do SIGHUP pelo processo para ser "ignorar"? Isso soa semelhante a nohup
.
$ sleep 123 & disown -h
[1] 26103
$ jobs
[1]+ Running sleep 123 &
$ fg 1
sleep 123
$ ^Z
[1]+ Stopped sleep 125
$ bg 1
[1]+ sleep 123 &
$ exit
$ ps aux | grep sleep
t 26103 0.0 0.0 14584 824 ? S 15:19 0:00 sleep 123
Fazer disown -h
e nohup
trabalhar efetivamente da mesma forma, se desconsiderarmos sua diferença no uso de um terminal?
Obrigado.
De alguma forma, consegui remover a barra de ferramentas e a barra de menus do Okular. Depois de não encontrar nenhuma maneira de reativá-los "de fora" - já que não consigo mais clicar em Opções - tentei reinstalar uma versão limpa depois de removê-la com apt-get remove --purge okular
. No entanto, não funcionou, as barras de ferramentas e menus ainda estavam indisponíveis. Também procurei por qualquer arquivo de configuração no diretório inicial, sem sucesso. Como devo proceder agora para restaurar um Okular.
A diff
implementação no OpenBSD possui uma -d
opção não padrão com a seguinte documentação:
-d
Tente muito difícil produzir um diff tão pequeno quanto possível. Isso pode consumir muito poder de processamento e memória ao processar arquivos grandes com muitas alterações.
A implementação GNU diff
tem a mesma opção com a documentação mais curta
-d
,--minimal
tente encontrar um conjunto menor de alterações
De vez em quando eu usei essa opção apenas para ver se ela gera uma saída que está em alguma forma ou formato diferente do mesmo diff
comando sem a opção, mas nunca vi nenhuma diferença (sem trocadilhos).
Alguém poderia fornecer ou apontar para um exemplo em que essa opção realmente produz um resultado diferente do mesmo comando sem -d
? Alternativamente, se alguém pudesse explicar as circunstâncias necessárias para esta opção entrar em ação. Também não tenho certeza se "mínimo" significa "menos linhas de saída" ou "menos pedaços".
Um palpite ignorante é que tem a ver com pedaços muito grandes.
Digamos, do kernel 2.6 em diante.
Eu assisto todos os processos em execução no sistema.
O PID dos filhos é sempre maior que o PID dos pais?
É possível ter casos especiais de "inversão"?
Eu tenho usado bc
para converter números entre binário para hexadecimal, octal para decimal e outros.
No exemplo a seguir, eu estava tentando converter o número de base 16 (hex) em binário, octal e decimal.
Eu não tenho nenhum problema com as primeiras 2 tentativas.
$ echo 'ibase=16; obase=2; FF' | bc
11111111
$ echo 'ibase=16; obase=8; FF' | bc
377
Mas quando tentei converter o número de base 16 (hex) para base 10 (decimal), estava recebendo a resposta errada. A resposta deve ser255
$ echo 'ibase=16; obase=10; FF' | bc
FF
Tentei restringir o número de reinicialização de um serviço (em um contêiner). A versão do SO é centos-release-7-5, o arquivo de serviço é praticamente como abaixo (removidos alguns parâmetros para conveniência de leitura). Deve ser bastante simples, como alguns outros posts apontaram (Post of Server Fault restart limit 1 , Post of Stack Overflow restart limit 2 ). No entanto, StartLimitBurst e StartLimitIntervalSec nunca funcionam para mim.
Testei de várias maneiras: (1) verifico o PID do serviço, mato o serviço com "kill -9 ****" várias vezes. O serviço sempre é reiniciado após 20s! (2) Eu também tentei bagunçar o arquivo de serviço, fazer o container nunca rodar. Ainda assim, não funciona, o arquivo de serviço continua reiniciando.
Qualquer ideia?
[Unit]
Description=Hello Fluentd
After=docker.service
Requires=docker.service
StartLimitBurst=2
StartLimitIntervalSec=150s
[Service]
EnvironmentFile=/etc/environment
ExecStartPre=-/usr/bin/docker stop "fluentd"
ExecStartPre=-/usr/bin/docker rm -f "fluentd"
ExecStart=/usr/bin/docker run fluentd
ExecStop=/usr/bin/docker stop "fluentd"
Restart=always
RestartSec=20s
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
Um software que instalei inseriu uma linha no meu perfil que diz:
[ -s "$SOME_FILE" ] && \. "$SOME_FILE"
Eu sei que dot .
é sinônimo de source
, então suspeito que isso seja apenas fonte do arquivo, mas nunca vi \.
antes; faz outra coisa?
Edit, sobre DVs: pesquisar por "ponto de barra invertida" leva a perguntas sobre ./
quando chamar arquivos executáveis e man source
leva a uma página de manual onde \.
não aparece. Não sei mais o que tentar, daí a pergunta.
Edit 2: veja as perguntas relacionadas