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
Linas
Asked: 2025-02-12 07:41:25 +0800 CST

Há quanto tempo um processo está ocioso desde a última vez que foi executado?

  • 5

Estou interessado em descobrir a última vez que um processo foi agendado para ser executado. Ou seja, há quanto tempo ele está dormindo, desde a última execução. Quando ele foi ativado pela última vez? Basicamente, uma generalização do que o wcomando imprime, mas para todos os processos, e não apenas para os shells de login.

Para tornar isso concreto: o wcomando imprime uma lista de sessões de usuários, quando eles efetuaram login e por quanto tempo ficaram inativos. Por exemplo:

$ w
 17:17:04 up 10 days, 17:35,  2 users,  load average: 0.28, 0.26, 0.30
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
linas    tty7     :0               31Jan25 10days 13:27m  2.09s mate-session
linas    pts/7    10.70.70.2       16:54    7:08  0.07s  0.07s -bash

Isso diz que linasse conectou pts/7há vinte e três minutos (17:17 menos 16:54) e digitou um pouco no teclado, queimando uma quantidade trivial de tempo de CPU, e então não fez nada por sete minutos e oito segundos. No kernel, o processo bashestá em suspensão interruptível, esperando por entrada do teclado, e tem sido assim por 7:08mm:ss.

Como posso obter essas informações para todos os processos? Ou, se não estiver disponível, todos os ptys? Então, pts/1embora /6também tenham bash anexado a eles, mas eles estão... ociosos. Ninguém está digitando neles, agora.

Parece que o pscomando deveria ser capaz de mostrar isso, mas não consigo descobrir. Talvez essa informação esteja, /proc/<pid>mas se estiver, não está claro onde. Os chatbots do GPT/LLM, sem noção, não fornecem nada além de respostas erradas (insistindo em ps -o etimequal é outra coisa completamente diferente).

bash
  • 1 respostas
  • 28 Views
Martin Hope
Caesar
Asked: 2025-02-12 06:42:12 +0800 CST

Documentação incorreta em nftables?

  • 5

Como alguém que não se aprofundou em todas as partes das camadas OSI, fiquei bastante frustrado com a documentação da filtragem de ponte no nftables: https://wiki.nftables.org/wiki-nftables/index.php/Bridge_filtering

Eu entendi errado ou endereço IP, portas, correspondência ICMP e similares não são possíveis em tabelas de bridge para nftables? Ainda assim, ele não reclama ao verificar as regras com nfte a documentação da página que eu incluí até dá portas IP como um exemplo para filtragem de bridge. Há documentação defeituosa e eu entendi errado alguma coisa?

nftables
  • 1 respostas
  • 61 Views
Martin Hope
Guim
Asked: 2025-02-12 05:35:03 +0800 CST

falha de segmentação de sinal ksplashqml após login KDE

  • 6

Pergunta auto respondida por pessoas com o mesmo problema.

Após uma atualização do meu kali (baseado em Debian), consegui efetuar login e encontrei o erro " ksplashqml signal segmentation fault " travando em uma tela preta (era a área de trabalho sem tema e consegui usar a tecla win para abrir um konsole, configurações ou qualquer software).

Encontro erros semelhantes, mas sem sucesso:

https://www.reddit.com/r/kde/comments/hprunv/bug_ksplashqml_crash_on_boot/ https://askubuntu.com/questions/1393943/ksplashqml-crash-on-startup

Kali 6.11

Gerenciador de exibição: sddm (para verificar tente systemctl status display-manager)

Então, toda vez que tento reiniciar o sddm, recebo o mesmo erro. Tentei alterar o tema do kde (de outras postagens) sem sucesso porque ele não era exibido nas Configurações do Sistema ou não aplicava a edição dos arquivos de configuração. Tentei, dpkg-reconfigure sddmmas não adiantou nada (porque não tenho o ambiente de desktop). O último recurso foi reinstalar o kde-plasma-desktop, mas recebo o erro " dpkg unsatisfied dependencies " e tentei consertá-lo sem sucesso (muitas coisas como apt update & apt upgrade apt --fix-broken installe apt clean)

kde
  • 1 respostas
  • 22 Views
Martin Hope
balupton
Asked: 2025-02-12 04:17:31 +0800 CST

Por que o MacOS sempre anexa a um descritor de arquivo redirecionado mesmo quando é instruído a sobrescrever? O Ubuntu só anexa quando é instruído a anexar estritamente

  • 12

Dado o seguinte código:

out="$(mktemp)"
rm -f "$out"
clear

printf '%s\n' 0 >"$out"
{
    printf '%s\n' '1' >/dev/stdout
    printf '%s\n' '2' >/dev/stdout
} >"$out"
cat -e -- "$out"
rm -f "$out"

No Ubuntu isso produz:

2$

No MacOS isso gera:

1$
2$

Ao anexar explicitamente, eles se comportam de forma consistente:

out="$(mktemp)"
rm -f "$out"
clear

printf '%s\n' 0 >"$out"
{
    printf '%s\n' '1' >/dev/stdout
    printf '%s\n' '2' >>/dev/stdout
} >"$out"
cat -e -- "$out"
rm -f "$out"

No MacOS e no Ubuntu isso gera:

1$
2$

O exemplo mais confuso para mim é este:

out="$(mktemp)"
rm -f "$out"
clear

printf '%s\n' 0 >"$out"
exec 3>>"$out"
{
    printf '%s\n' '1' >/dev/stdout
    printf '%s\n' '2' >/dev/stdout
} >&3
{
    printf '%s\n' '3' >/dev/stdout
    printf '%s\n' '4' >/dev/stdout
} >&3
cat -e -- "$out"
rm -f "$out"
exec 3>&-

Que no MacOS gera:

0$
1$
2$
3$
4$

Que no Ubuntu gera:

4$

Eu esperava isso no Ubuntu:

0$
2$
4$

Estou completamente confuso sobre o porquê desse comportamento ocorrer neste exemplo e em todos os outros exemplos que criei para ilustrar essa discrepância.

Minhas perguntas:

  • O que é essa discrepância? O que está acontecendo? Essa discrepância é intencional?
  • Onde mais essa discrepância se aplica? Quais são suas origens?
  • Se essa discrepância é intencional, por que foi justificada? Qual deveria ser o comportamento correto?
  • O que pode ser feito para atenuar essas diferenças ao escrever scripts entre sistemas operacionais?
  • É shopt -o noclobbera resposta apropriada? É essa a verdadeira necessidade de noclobber?
linux
  • 1 respostas
  • 1353 Views
Martin Hope
luziferius
Asked: 2025-02-11 22:39:12 +0800 CST

Como iniciar automaticamente um aplicativo GUI ao conectar um dispositivo USB?

  • 4

Quero iniciar automaticamente um aplicativo GUI, sempre que eu conectar um determinado dispositivo USB. Quando iniciado, o aplicativo roda em primeiro plano e não deve rodar como root.

Como posso fazer isso?

No meu caso específico, quero executar o Yubico Authenticator sempre que conectar meu token de hardware Yubikey USB FIDO2/TOTP.

systemd
  • 1 respostas
  • 34 Views
Martin Hope
Martin
Asked: 2025-02-11 22:27:42 +0800 CST

O que /etc/resolve.conf realmente contém: ele contém o IP do próprio servidor ou contém o delegador upstream?

  • 5

Analisei várias resolve.confperguntas aqui e em outras documentações, mas elas falam sobre o DNS como algo externo, o que não me ajuda a distinguir neste caso.

  • Eu tenho um servidor. O servidor tem algum tipo de problema de DNS.
  • O servidor roda Linux (CentOS 7.9) e tem 2 endereços IP que apontam para ele.
  • O servidor tem um /etc/resolve.confque contém dois outros endereços IP.

Esses outros IPs em resolve.conf devem ser os 2 que apontam para o servidor ou devem ser 2 IPs "estranhos" apontando para o upstream?

Obrigado

dns
  • 1 respostas
  • 21 Views
Martin Hope
elbarna
Asked: 2025-02-11 07:14:07 +0800 CST

Tar Solaris, como usar a opção -k?

  • 6

Quero criar um arquivo dividido em 300k arquivos, mas me dá erro

    tar -cf file.tar -k300 vi*       
tar: -k300: No such file or directory

Eu tento colocar -k antes de -c

tar -k 300 -cf file.tar vi* 
Usage: tar {c|r|t|u|x}[BDeEFhilmnopPqTvw@[0-7]][bfk][X...] [blocksize] [tarfile] [size] [exclude-file...] {file | -I include-file | -C directory file}...

tar -f file.tar -c -k 300  vi*            
Usage: tar {c|r|t|u|x}[BDeEFhilmnopPqTvw@[0-7]][bfk][X...] [blocksize] [tarfile] [size] [exclude-file...] {file | -I include-file | -C directory file}...

Uma solução alternativa é usar o gnu tar

gtar -cv --tape-length=300k --file=file-{0..10}.tar vi*       

Mas eu quero saber como fazer isso com Sun Tar

tar
  • 1 respostas
  • 26 Views
Martin Hope
Mark Raymond
Asked: 2025-02-11 04:43:48 +0800 CST

nftables retorna "Erro: Nenhum arquivo ou diretório" ao tentar listar ou modificar uma tabela que claramente existe

  • 6

Tenho duas tabelas no nftables:

$ sudo nft list tables
table inet filter
table ip nat

A nattabela pode ser listada perfeitamente:

$ sudo nft list table nat
table ip nat {
        chain prerouting {
                type nat hook prerouting priority filter; policy accept;
                <output truncated>
        }

        chain postrouting {
                type nat hook postrouting priority srcnat; policy accept;
                <output truncated>
        }
}

Mas não a filtermesa:

$ sudo nft list table filter
Error: No such file or directory
list table filter
           ^^^^^^

Isso significa que não posso adicionar novas regras na linha de comando:

$ sudo nft add rule filter forward oif <interface> ip saddr <ip> accept
Error: No such file or directory; did you mean table ‘filter’ in family inet?
add rule filter forward oif <interface> ip saddr <ip> accept
         ^^^^^^

Esta é a primeira vez que tento usar a nftlinha de comando, até agora só tive uma configuração estática /etc/nftables.confe isso foi suficiente. O que está acontecendo aqui?

nftables
  • 1 respostas
  • 26 Views
Martin Hope
Enlico
Asked: 2025-02-11 02:14:58 +0800 CST

Como um ouvinte socat sabe que o processo conectado a ele foi MORTO?

  • 9

Até onde eu entendo, uma vez que uma conexão TCP é estabelecida, não há fluxo real de dados, a menos que uma das duas pontas realmente envie uma mensagem, ambas são bloqueadas em uma chamada para receber uma mensagem. Como em, não é como se uma das pontas estivesse enviando mensagens periódicas para a outra dizendo "só para você saber, eu ainda estou vivo".

Se for esse o caso, então eu esperaria que se qualquer uma das extremidades do canal de comunicação fosse desligada abruptamentekill -KILL it (por exemplo , mas também apenas desconectasse o cabo de alimentação de toda a máquina), a outra extremidade não saberia.

Indo para um exemplo concreto, posso estabelecer uma conexão entre dois terminais via socat:

  • ouça de um terminal e anote o PID
    $ socat -d4 TCP-LISTEN:12345 -
    $ # ctrl-z
    $ jobs -l
    [1]+ 958602 Stopped                 socat -d4 TCP-LISTEN:12345 -
    $ fg
    
  • conecte-se do outro terminal e anote esse PID também
    $ socat -d4 TCP-CONNECT:localhost:12345 -
    $ # ctrl-z
    $ jobs -l
    [1]+ 958730 Stopped                 socat -d4 TCP-CONNECT:localhost:12345 -
    $ fg
    

(Ambos socatos comandos produzem uma quantidade considerável de saída por causa das -d4mensagens de depuração.)

Agora, se eu abrir um terceiro terminal, finalizo o problema

$ kill -KILL 958730

Vejo Killedsendo impresso no segundo terminal, sem mais linhas de depuração do socatque aquelas que foram impressas antes, mas no primeiro terminal vejo mais saída:

2025/02/10 18:04:42 socat[958602] D select -> (, 0x0, 0x0, 0x0, NULL/0.000000), 1
2025/02/10 18:04:42 socat[958602] D read(122, 0x61dbb1b48000, 8192)
2025/02/10 18:04:42 socat[958602] D read -> 0
2025/02/10 18:04:42 socat[958602] N socket 1 (fd 122) is at EOF
2025/02/10 18:04:42 socat[958602] D data loop: sock1->eof=3, sock2->eof=0, closing=1, wasaction=1, total_to={0.1000000}
2025/02/10 18:04:42 socat[958602] D select(1, &0x1, &0x0, &0x0, &0.500000)
2025/02/10 18:04:43 socat[958602] D select -> (, 0x0, 0x0, 0x0, &0.000000), 0
2025/02/10 18:04:43 socat[958602] I poll timed out (no data within 0.500000 seconds)
2025/02/10 18:04:43 socat[958602] I shutdown(122, 2)
2025/02/10 18:04:43 socat[958602] D shutdown()  -> 0
2025/02/10 18:04:43 socat[958602] D tcsetattr(0, 0, {00006506,00000005,000000bf,00008a3b, 15,15, 03,1c,7f,15,04,00,01,00,11,13,1a,00,12,0f,17,16,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00})
2025/02/10 18:04:43 socat[958602] D tcsetattr() -> 0
2025/02/10 18:04:43 socat[958602] D tcsetattr(1, 0, {00006506,00000005,000000bf,00008a3b, 15,15, 03,1c,7f,15,04,00,01,00,11,13,1a,00,12,0f,17,16,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00})
2025/02/10 18:04:43 socat[958602] D tcsetattr() -> 0
2025/02/10 18:04:43 socat[958602] N exiting with status 0
2025/02/10 18:04:43 socat[958602] D exit(0)
2025/02/10 18:04:43 socat[958602] D starting xioexit()
2025/02/10 18:04:43 socat[958602] D finished xioexit()

Mas eu não entendo, se SIGKILLnão pode ser capturado/manipulado no código do usuário porque é manipulado diretamente pelo kernel , então 958730não deve haver chance de fazer algo como enviar uma mensagem dizendo "desculpe, estou morrendo" e, portanto, 958602nunca deve saber sobre isso.

Onde está a falha no meu raciocínio?

linux
  • 1 respostas
  • 609 Views
Martin Hope
Matteo
Asked: 2025-02-11 00:25:41 +0800 CST

canalizar para uniq de uma variável que não mostra a saída desejada

  • 5

Tenho um pipeline usando array jobs e preciso alterar o número de entradas para algumas etapas. Pensei em testar, uniqjá que a única parte que muda nas minhas pastas são os últimos quatro caracteres (a parte hap no exemplo). Então, todos os meus caminhos parecem algo como:

/mnt/nvme/user/something1/hap1
/mnt/nvme/user/something1/hap2
/mnt/nvme/user/something2/hap1
/mnt/nvme/user/something2/hap2

e o que estou fazendo é o seguinte:

DIR=( "/mnt/nvme/ungaro/something1/hap1" "/mnt/nvme/ungaro/something1/hap2" "/mnt/nvme/ungaro/something2/hap1" "/mnt/nvme/ungaro/something2/hap2" )

for dir in "${DIR[@]}"; do echo $dir | sed 's#/hap[0-9]##' | uniq; done

Mas a saída resultante sempre exibe todos os elementos na variável sem recolher as linhas duplicadas após remover a parte hap de cada uma delas.

Provavelmente estou esquecendo de algo, poderia ser que as forforças imprimam todas as linhas de qualquer maneira. Se sim, há uma maneira de atingir o resultado desejado em um comando de linha única?

bash
  • 2 respostas
  • 33 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