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 / unix / 问题

All perguntas(unix)

Martin Hope
konsolebox
Asked: 2024-11-27 00:25:21 +0800 CST

Como exatamente o graphical-session.target inicia ou é iniciado

  • 5
A recompensa expira em 6 dias . Respostas a esta pergunta são elegíveis para uma recompensa de reputação de +250 . konsolebox quer chamar mais atenção para esta pergunta.

O arquivo de unidade systemd não pode ser executado manualmente, então deve haver algo que o acione. Dependências reversas podem exigir isso, mas como elas também são iniciadas? Normalmente, elas não são iniciadas antes startx(ou pelo menos não deveriam ser), então deve haver um ponto de acionamento.

Estou mais interessado em como ele funciona com o startx, e não com um gerenciador de login.

Detalhes sobre como gnome-session.targetfunciona especificamente também seriam ótimos, já que é o exemplo mais prático de uma implementação de framework de sessão que utiliza graphical-session.target. O binário gnome-session tem uma --systemdopção. Talvez seja onde o gatilho do ponto de partida é colocado. Seria triste saber que os binários podem simplesmente ignorar RefuseManualStart=yes. Isso seria muito... gatilho.

systemd
  • 1 respostas
  • 37 Views
Martin Hope
Seamus
Asked: 2024-11-26 17:20:56 +0800 CST

Minha "fuga" está errada - ou é outra coisa?

  • 7

Aqui está o que estou tentando fazer (em um script):

#!/usr/bin/env bash

if [[ ! $("/usr/bin/scp [email protected]:/Users/seamus/Downloads/imgutils/image-utils* /home/pi/testscp") ]]; then
    printf "\nERROR & EXIT: 'scp' failed \n"
    exit 1
fi
printf "success!\n"

Eu tentei fazer isso de algumas maneiras, mas nada parece funcionar. Aqui está o que eu obtenho do acima:

./testscp.sh: line 3: /usr/bin/scp [email protected]:/Users/seamus/Downloads/imgutils/image-utils* /home/pi/testscp: No such file or directory

ERROR & EXIT: 'scp' failed

O scpcomando roda OK quando está em uma linha por si só. Se eu fizer isso, posso testar $0- o que funciona OK... mas eu preferiria fazer tudo em uma única linha. O que estou perdendo?

bash
  • 2 respostas
  • 196 Views
Martin Hope
xuhdev
Asked: 2024-11-26 11:43:58 +0800 CST

Configurar o Linux para sincronizar regularmente os dados armazenados em cache no disco

  • 6

O comando sync "grava quaisquer dados armazenados em buffer na memória para o disco". Até onde eu entendo, os dados podem ser armazenados em buffer na memória por muito tempo, mesmo se os discos não tiverem atividade.

Como posso configurar corretamente o Linux para sincronizar automaticamente e regularmente?

O cenário é um servidor de armazenamento, onde eu gostaria de evitar que dados armazenados em cache sejam impedidos de serem gravados em discos por muito tempo, o que leva à corrupção de dados em caso de falha do sistema ou perda de energia.

linux
  • 1 respostas
  • 29 Views
Martin Hope
denispcguy
Asked: 2024-11-26 03:51:34 +0800 CST

Todos os programas baseados em Chromium estão sendo executados apenas a 60 fps

  • 6

Arco Linux

wayland/sway

nvidia proprietary driver 565.57.01

60 hz | 144 hz | 60 hz monitor setup

Tudo é suave, exceto o chromium (chrome, vscode). Notavelmente, quando desconecto meus dois monitores menores e reinicio, o chromium fica suave, mas apenas até eu reiniciar da próxima vez. Li sobre problemas semelhantes de taxa de atualização, mas eles parecem estar mirando principalmente no xorg.

Esta questão no fórum manjaro aborda praticamente o mesmo problema, mas o tópico não levou a uma solução https://forum.manjaro.org/t/all-chromium-based-programs-are-running-only-at-60-fps/68175

A página wiki do Arch leva a um problema aberto sobre o rastreador de bugs do Google, mas também não tivemos sorte, o Google não parece se importar muito https://issues.chromium.org/issues/40761642

É possível consertar, dado o estado atual das coisas? Ou há alguma solução alternativa utilizável? Qualquer ajuda seria muito apreciada!

arch-linux
  • 1 respostas
  • 21 Views
Martin Hope
mYnDstrEAm
Asked: 2024-11-26 01:41:37 +0800 CST

Lutris "i386 libGL.so.1 ausente (necessário para opengl)"

  • 6

Ao iniciar o Lutris, esse erro é exibido no console. Se o i386 libGL.so.1 é necessário ou não, como instalá-lo? Preciso habilitar fontes de 32 bits em sources.list? Já tenho libgl1 e libglu1-mesa-dev instalados (no Debian 12).

debian
  • 1 respostas
  • 29 Views
Martin Hope
Matteo
Asked: 2024-11-25 21:34:48 +0800 CST

duplicar colunas com AWK e separá-las por tabulação

  • 7

Tenho um arquivo grande com o seguinte formato tab-separado:

#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT  recombination
chr1    586001  >63041388>63041391      G       A       60      .       AC=80;AF=0.3125;AN=256;AT=>63041388>63041390>63041391,>63041388>63041389>63041391;NS=3;LV=0     GT    1|2|3|

Agora, a última coluna, a décima, aparece como muitos números divididos por uma barra vertical |; no entanto, o que desejo alcançar é o seguinte:

#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT  recombination
chr1    586001  >63041388>63041391      G       A       60      .       AC=80;AF=0.3125;AN=256;AT=>63041388>63041390>63041391,>63041388>63041389>63041391;NS=3;LV=0     GT    1|1    2|2    3|3

Consegui separar as colunas tabsubstituindo o |símbolo, o que me deixa com a forma de duplicá-las e adicionar novamente os |números entre elas. Tentei algumas vezes com forloops, mas o melhor que consegui fazer foi imprimir apenas duas colunas como tal:

1    1
2    2
3    3
...

caso contrário, printfobtenho uma saída de uma linha, mas não consigo manter o contador com o mesmo valor da coluna inicial... Qualquer ajuda é muito apreciada, obrigado antecipadamente!

text-processing
  • 2 respostas
  • 163 Views
Martin Hope
k314159
Asked: 2024-11-25 17:04:48 +0800 CST

Mover e sobrescrever recursivamente

  • 5

Estou usando o Ubuntu 24.10 e tenho um diretório contendo arquivos e subdiretórios:

main-dir
   file1
   file2
   file3
   subdir1
      file1-1
      file1-2
      subdir1-1
         file1-1-1
         file1-1-2
      subdir1-2
         file1-2-1
         subdir1-2-1
            ...

E eu tenho uma árvore de diretórios contendo arquivos "corrigidos":

corrections-dir
   file2
   subdir1
      file1-1
      subdir1-1
         file1-1-1
      subdir1-2
         file1-2-1

Quero mover recursivamente e sobrescrever todos os arquivos de corrections-dirpara main-dir. No entanto, o mvcomando não parece ter uma opção recursiva. Sei que poderia fazer isso:

cp -R corrections-dir main-dir
rm -r corrections-dir

Mas os arquivos são grandes e esse comando demora e grava desnecessariamente em novos setores do meu SSD (diminuindo assim sua vida útil).

Existe uma maneira de usar mvrecursivamente?

bash
  • 1 respostas
  • 26 Views
Martin Hope
Adrian
Asked: 2024-11-25 11:25:40 +0800 CST

Por que uma interface de rede precisa ter uma entrada na tabela de roteamento configurada para responder a solicitações ARP?

  • 5

Estou usando uma instalação mínima nova do Ubuntu server 24.04.1 LTS. Eu executo esses comandos como root para configurar a rede e fazer alguns experimentos:

apt install -y netcat-traditional tcpdump inetutils-ping

ip netns add ns1
ip netns add ns2

ip link add my_veth1 type veth peer name my_veth2

ip link set my_veth1 up netns ns1
ip link set my_veth2 up netns ns2

ip -n ns1 address add 1.2.3.4 dev my_veth1
ip -n ns1 route add 2.3.4.0/24 dev my_veth1

ip -n ns2 address add 2.3.4.5 dev my_veth2

Então executo esses comandos em diferentes terminais:

# Terminal 1
ip netns exec ns1 tcpdump -l -i my_veth1

# Terminal 2
ip netns exec ns2 tcpdump -l -i my_veth2

# Terminal 3
ip netns exec ns1 ping 2.3.4.5

Recebo a mesma saída nos terminais 1 e 2:

02:40:27.511438 ARP, Request who-has 2.3.4.5 tell 1.2.3.4, length 28
02:40:27.511438 ARP, Request who-has 2.3.4.5 tell 1.2.3.4, length 28
02:40:27.511438 ARP, Request who-has 2.3.4.5 tell 1.2.3.4, length 28
...

veth2tem o endereço IP 2.3.4.5 e está recebendo a requisição ARP. Por que ele não envia uma resposta? Ele só responde quando eu configuro uma entrada na tabela de roteamento:

ip -n ns2 route add 1.2.3.0/24 dev my_veth2

Mas isso não deveria ser necessário, pois o endereço MAC da interface de rede que veth2deve responder já está codificado na solicitação à qual ela está respondendo.

network-interface
  • 2 respostas
  • 34 Views
Martin Hope
jnrbsn
Asked: 2024-11-25 09:26:44 +0800 CST

Por que exec no script bash executado pelo cron não preserva $PATH?

  • 7

Tenho a seguinte configuração de tarefa cron no Debian 12:

/etc/cron.d/jonathan-test:

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

* * * * * jonathan /home/jonathan/test1.sh >> /home/jonathan/test.log 2>&1

/home/jonathan/test1.sh:

#!/usr/bin/env bash

export PATH="/home/jonathan/mytestdir:${PATH}"
echo "test1.sh -> PATH=${PATH}"
export PAAATH="this_is_a_test"
echo "test1.sh -> PAAATH=${PAAATH}"
exec "${HOME}/test2.sh"

/home/jonathan/test2.sh:

#!/usr/bin/env bash

echo "test2.sh -> PATH=${PATH}"
echo "test2.sh -> PAAATH=${PAAATH}"

Quando executado, ele grava o seguinte em /home/jonathan/test.log:

test1.sh -> PATH=/home/jonathan/mytestdir:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
test1.sh -> PAAATH=this_is_a_test
test2.sh -> PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
test2.sh -> PAAATH=this_is_a_test

Como você pode ver, a $PATHvariável não é preservada por exec.

Este é um exemplo simplificado e artificial do meu problema real, que é executar o pyenv a partir de um cron job. Se eu mudar meu cron.darquivo para isto:

SHELL=/bin/bash
PYENV_ROOT=/opt/pyenv
PATH=/opt/pyenv/shims:/opt/pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

* * * * * jonathan python --version >> /home/jonathan/test.log 2>&1

Então eu escrevo isso no arquivo de saída:

/opt/pyenv/libexec/pyenv-exec: line 24: pyenv-version-name: command not found

Ele executa corretamente /opt/pyenv/shims/python. Isso é apenas um script bash que executa pyenv exec python --version. Ele executa corretamente /opt/pyenv/bin/pyenv, que é um link simbólico para /opt/pyenv/libexec/pyenv, que é um script bash que modifica $PATHpara incluir /opt/pyenv/libexec(e sim, ele exporta!) e executa /opt/pyenv/libexec/pyenv-exec, que é outro script bash que tenta fazer PYENV_VERSION="$(pyenv-version-name)"na linha 24, o que resulta no erro acima, porque /opt/pyenv/libexecnão está em $PATH. Eu reduzi para o exemplo simplificado acima. A mesma pyenvconfiguração exata com apenas variáveis ​​de ambiente e sem a integração do shell funciona muito bem quando não é executada a partir do cron.

Para sua informação, não há sudolugar nenhum nisso, e eu posso reproduzi-lo como outros usuários também. Então não parece estar relacionado a secure_pathem /etc/sudoers.

bash
  • 1 respostas
  • 71 Views
Martin Hope
Adrian
Asked: 2024-11-25 04:23:29 +0800 CST

Por que não estou obtendo nenhuma saída no tcpdump mesmo quando há dados sendo enviados e recebidos ao usar namespaces de rede?

  • 5

Estou usando uma instalação mínima nova do Ubuntu server 24.04.1 LTS. Eu executo esses comandos como root para configurar a rede e fazer alguns experimentos:

Se você viu esta postagem , é a mesma configuração, mas com o endereço IP 2.3.4.5atribuído my_veth2e a entrada na tabela de roteamento 1.2.3.0/24para garantir que os dados possam ser enviados e recebidos de cada namespace de rede.

# Terminal 1

apt install -y netcat-traditional tcpdump

ip netns add ns1
ip netns add ns2

ip link add my_veth1 type veth peer name my_veth2

ip link set my_veth1 up netns ns1
ip link set my_veth2 up netns ns2

ip -n ns1 address add 1.2.3.4 dev my_veth1
ip -n ns1 route add 2.3.4.0/24 dev my_veth1
ip -n ns2 address add 2.3.4.5 dev my_veth2
ip -n ns2 route add 1.2.3.0/24 dev my_veth2

ip netns exec ns2 nc -l -p 8080

então abro mais 2 terminais para rodar tcpdumpem cada namespace de rede:

# Terminal 2
ip netns exec ns1 tcpdump -i my_veth1

# Terminal 3
ip netns exec ns2 tcpdump -i my_veth2

então abro mais um último terminal para enviar dados do ns1 para o servidor netcat no ns2:

# Terminal 4
ip netns exec ns1 nc 2.3.4.5 8080 <<< 'Hello world from network namespace ns1'

Resultados:

  • A mensagem enviada do Terminal 4 é impressa no Terminal 1, como esperado.
  • Nenhum pacote está sendo exibido em nenhum dos tcpdump. POR QUÊ?
routing
  • 1 respostas
  • 18 Views
Prev
Próximo

Sidebar

Stats

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

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

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