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 / user-108618

Kamil Maciorowski's questions

Martin Hope
Kamil Maciorowski
Asked: 2024-03-21 20:07:27 +0800 CST

Por que `nice` com um argumento negativo (por exemplo, `nice -15`) aumenta a gentileza?

  • 15

O meu niceé do GNU coreutils 9.1. Observei que nice -15é equivalente a nice -n 15:

     nice               # prints 0 for me, the base niceness is 0
     nice -n  15 nice   # prints 15, this is expected
sudo nice -n -15 nice   # prints -15, this is expected
     nice    -15 nice   # prints 15

-15é um número negativo. Por que isso aumenta a gentileza no último exemplo acima? O manual (por exemplo, no Debian 12) não explica isso.

gnu
  • 1 respostas
  • 2191 Views
Martin Hope
Kamil Maciorowski
Asked: 2024-01-16 17:39:05 +0800 CST

Acesso negado para `systemd-inhibit --what=idle`

  • 6

Problema

No Debian 12 eu uso IdleAction=poweroffe IdleActionSec=…no logind.conf. Isso funciona conforme o esperado: a máquina desliga-se automaticamente quando fica ociosa por tempo suficiente.

Quero poder usar systemd-inhibit --what=idlecomo usuário normal. Encontrei afirmações de que deveria ser possível ( exemplo ). Na verdade, em um dos meus sistemas Debian 12 isso é possível, vamos chamar isso de Debian Successful ; mas existem outros sistemas Debian 12 onde eu recebo Access denied, vamos chamá-los de Failing . A máquina onde eu realmente preciso dessa funcionalidade está no grupo Failing .

Não é uma peculiaridade temporária (por causa da "necessidade de reiniciar" ou algo assim). Acabei de reiniciar a máquina Successful e uma Failing , o comportamento persiste.

Por que a diferença? O que posso fazer para que um sistema com falha se comporte como um sistema com sucesso ?

Não estou realmente interessado em soluções alternativas sudoou em algum wrapper personalizado. Eu gostaria systemd-inhibit --what=idlede "apenas trabalhar", como acontece no sistema Successful . Eu gostaria de ajustar seu comportamento tanto quanto possível "de acordo com o livro systemd/polkit".


Comportamento atual

É assim que funciona no sistema Successful . É isso que eu quero:

$ SYSTEMD_LOG_LEVEL=7 systemd-inhibit --what=idle true
Bus n/a: changing state UNSET → OPENING
sd-bus: starting bus by connecting to /run/dbus/system_bus_socket...
Bus n/a: changing state OPENING → AUTHENTICATING
Bus n/a: changing state AUTHENTICATING → HELLO
Sent message type=method_call sender=n/a destination=org.freedesktop.DBus path=/org/freedesktop/DBus interface=org.freedesktop.DBus member=Hello cookie=1 reply_cookie=0 signature=n/a error-name=n/a error-message=n/a
Got message type=method_return sender=org.freedesktop.DBus destination=:1.75 path=n/a interface=n/a member=n/a cookie=1 reply_cookie=1 signature=s error-name=n/a error-message=n/a
Bus n/a: changing state HELLO → RUNNING
Sent message type=method_call sender=n/a destination=org.freedesktop.login1 path=/org/freedesktop/login1 interface=org.freedesktop.login1.Manager member=Inhibit cookie=2 reply_cookie=0 signature=ssss error-name=n/a error-message=n/a
Got message type=method_return sender=:1.7 destination=:1.75 path=n/a interface=n/a member=n/a cookie=149 reply_cookie=2 signature=h error-name=n/a error-message=n/a
Successfully forked off '(inhibit)' as PID 3384.
Skipping PR_SET_MM, as we don't have privileges.
true succeeded.
Bus n/a: changing state RUNNING → CLOSED
$ echo $?
0
$

É assim que falha nos sistemas com falha :

$ SYSTEMD_LOG_LEVEL=7 systemd-inhibit true
Bus n/a: changing state UNSET → OPENING
sd-bus: starting bus by connecting to /run/dbus/system_bus_socket...
Bus n/a: changing state OPENING → AUTHENTICATING
Bus n/a: changing state AUTHENTICATING → HELLO
Sent message type=method_call sender=n/a destination=org.freedesktop.DBus path=/org/freedesktop/DBus interface=org.freedesktop.DBus member=Hello cookie=1 reply_cookie=0 signature=n/a error-name=n/a error-message=n/a
Got message type=method_return sender=org.freedesktop.DBus destination=:1.44 path=n/a interface=n/a member=n/a cookie=1 reply_cookie=1 signature=s error-name=n/a error-message=n/a
Bus n/a: changing state HELLO → RUNNING
Sent message type=method_call sender=n/a destination=org.freedesktop.login1 path=/org/freedesktop/login1 interface=org.freedesktop.login1.Manager member=Inhibit cookie=2 reply_cookie=0 signature=ssss error-name=n/a error-message=n/a
Got message type=error sender=:1.1 destination=:1.44 path=n/a interface=n/a member=n/a cookie=464 reply_cookie=2 signature=s error-name=org.freedesktop.DBus.Error.AccessDenied error-message=Permission denied
Failed to inhibit: Access denied
Bus n/a: changing state RUNNING → CLOSED
$ echo $?
1
$

trueé apenas um exemplo. Em última análise, quero invocar algum comando de longa duração para o qual a inibição faça todo o sentido.


Detalhes

  • Bem-sucedido e fracassado são o Debian 12.

  • O kernel em Successful e em cada Failing é 6.1.0-17-amd64.

  • A saída de id:

    @Successful $ id
    uid=1000(kamil) gid=1000(kamil) groups=1000(kamil),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),100(users),106(netdev),111(bluetooth),113(lpadmin),117(scanner),124(pcspkr)
    
    @Failing1 $ id
    uid=1000(kamil) gid=1000(kamil) groups=1000(kamil),4(adm),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),108(netdev)
    
  • Em cada sistema /usr/bin/systemd-inhibitdá o mesmo md5sum, concluo que os arquivos são idênticos entre Successful e Failing ; eles não foram adulterados. ls -l /usr/bin/systemd-inhibitimpressões:

     -rwxr-xr-x 1 root root 22928 11-10 01:25 /usr/bin/systemd-inhibit
    
  • Em cada sistema /usr/share/dbus-1/system.d/org.freedesktop.login1.confdá o mesmo md5sum, concluo que os arquivos são idênticos entre Successful e Failing ; eles não foram adulterados. As partes relevantes (?):

    <busconfig>
    
          <policy user="root">
                  <allow own="org.freedesktop.login1"/>
                  <allow send_destination="org.freedesktop.login1"/>
                  <allow receive_sender="org.freedesktop.login1"/>
          </policy>
    
          <policy context="default">
                  <deny send_destination="org.freedesktop.login1"/>
    [...]
                  <allow send_destination="org.freedesktop.login1"
                         send_interface="org.freedesktop.login1.Manager"
                         send_member="Inhibit"/>
    [...]
                  <allow receive_sender="org.freedesktop.login1"/>
          </policy>
    
    </busconfig>
    
  • Em cada sistema /usr/share/polkit-1/actions/org.freedesktop.login1.policydá o mesmo md5sum, concluo que os arquivos são idênticos entre Successful e Failing ; eles não foram adulterados. As partes relevantes (?):

    <policyconfig>
    [...]
          <action id="org.freedesktop.login1.inhibit-block-idle">
                  <description gettext-domain="systemd">Allow applications to inhibit automatic system suspend</description>
                  <message gettext-domain="systemd">Authentication is required for an application to inhibit automatic system suspend.</message>
                  <defaults>
                          <allow_any>yes</allow_any>
                          <allow_inactive>yes</allow_inactive>
                          <allow_active>yes</allow_active>
                  </defaults>
          </action>
    [...]
    </policyconfig>
    

    Eu acho que isso <allow_any>yes</allow_any>é responsável pela alegada capacidade de um usuário comum usar arquivos systemd-inhibit --what=idle. Ainda em Sistemas com falha parece ser ignorado.

  • O Debian de sucesso usa seu hardware diretamente. Um Debian com falha está instalado no HP ProLiant DL380 G5; outros Debians com falha são máquinas virtuais no VMware ESXi 7.

  • Eu uso sshpara me conectar ao sistema de sucesso e a cada um que falha . O sistema Successful fornece uma GUI, mas é "apenas por precaução"; atualmente sddmsó fica lá e eu não faço login dessa maneira.

  • A saída de pstree -lu:

    @Successful $ pstree -lu
    systemd-+-ModemManager---2*[{ModemManager}]
            |-NetworkManager---2*[{NetworkManager}]
            |-accounts-daemon---2*[{accounts-daemon}]
            |-atop
            |-atopacctd
            |-avahi-daemon(avahi)---avahi-daemon
            |-blkmapd
            |-bluetoothd
            |-cron
            |-cups-browsed---2*[{cups-browsed}]
            |-cupsd
            |-dbus-daemon(messagebus)
            |-dhcpd
            |-exim4(Debian-exim)
            |-hostapd
            |-nfsdcld
            |-openvpn
            |-polkitd(polkitd)---2*[{polkitd}]
            |-rpc.idmapd
            |-rpc.mountd
            |-rpc.statd(statd)
            |-rpcbind(_rpc)
            |-rtkit-daemon(rtkit)---2*[{rtkit-daemon}]
            |-sddm-+-Xorg---10*[{Xorg}]
            |      |-sddm-helper---sddm-greeter(sddm)---11*[{sddm-greeter}]
            |      `-{sddm}
            |-smartd
            |-sshd-+-sshd---sshd(bisztynek)
            |      `-sshd---sshd(kamil)---bash---tmux: client
            |-systemd(sddm)-+-(sd-pam)
            |               |-dbus-daemon
            |               `-pulseaudio-+-gsettings-helpe---3*[{gsettings-helpe}]
            |                            `-2*[{pulseaudio}]
            |-systemd(kamil)-+-(sd-pam)
            |                |-dbus-daemon
            |                `-pulseaudio-+-gsettings-helpe---3*[{gsettings-helpe}]
            |                             `-{pulseaudio}
            |-systemd(bisztynek)-+-(sd-pam)
            |                    |-dbus-daemon
            |                    `-pulseaudio-+-gsettings-helpe---3*[{gsettings-helpe}]
            |                                 `-{pulseaudio}
            |-systemd-journal
            |-systemd-logind
            |-systemd-timesyn(systemd-timesync)---{systemd-timesyn}
            |-systemd-udevd
            |-tmux: server(kamil)---bash---pstree
            |-transmission-da(debian-transmission)---3*[{transmission-da}]
            |-udisksd---4*[{udisksd}]
            |-upowerd---2*[{upowerd}]
            `-wpa_supplicant
    
    @Failing1 $ pstree -lu
    systemd-+-VGAuthService
            |-agetty
            |-cron
            |-dbus-daemon(messagebus)
            |-dhclient
            |-nmbd
            |-rsyslogd---3*[{rsyslogd}]
            |-smbd-+-cleanupd
            |      |-smbd
            |      `-smbd-notifyd
            |-sshd---sshd---sshd(kamil)---bash---tmux: client
            |-systemd(kamil)---(sd-pam)
            |-systemd-journal
            |-systemd-logind
            |-systemd-timesyn(systemd-timesync)---{systemd-timesyn}
            |-systemd-udevd
            |-tmux: server(kamil)-+-2*[bash---nano]
            |                     `-bash---pstree
            `-vmtoolsd---2*[{vmtoolsd}]
    

    Outros sistemas do grupo Failing podem executar conjuntos de tarefas ligeiramente diferentes, embora sejam todos igualmente minimalistas.


Observação

Uma grande diferença entre o Debian bem-sucedido e cada um com falha é a GUI. Existem Xorge sddmprocessos relacionados em Success . Mas, como eu disse, não faço login na GUI. Não sei se tem alguma coisa a ver com o problema. Talvez seja apenas uma pista falsa.

debian
  • 1 respostas
  • 20 Views
Martin Hope
Kamil Maciorowski
Asked: 2023-12-13 08:09:11 +0800 CST

Qual é a diferença entre “readahead do sistema de arquivos” e “readahead”?

  • 6

De man 8 blockdev:

O utilitário blockdevpermite chamar ioctls de dispositivos de bloco a partir da linha de comando.

Minha dúvida é sobre as seguintes opções:

--getfra
Obtenha leitura antecipada do sistema de arquivos em setores de 512 bytes.

--getra
Imprima readahead (em setores de 512 bytes).

--setfra sectors
Defina o readahead do sistema de arquivos (o mesmo que --setranos kernels 2.6).

--setra sectors
Defina readahead (em setores de 512 bytes).

Acho que sei o que é readahead em geral. O que me confunde é o "readahead do sistema de arquivos".

  1. Por que existem duas opções separadas: “filesystem readahead” e “readahead”? Como eles diferem?

  2. O "sistema de arquivos readahead" tem algo a ver com sistemas de arquivos? O que? E se sim , então qual é o problema em deixar blockdevgerenciar isso?

    Quero dizer, blockdevfunciona com dispositivos de bloco (certo?), dispositivos de bloco e sistemas de arquivos são diferentes níveis de abstração (certo?) e ainda valorizamos "fazer uma coisa e fazê-la bem" ( certo? ). É por isso que blockdevlidar com "alguma coisa no sistema de arquivos" é surpreendente para mim.

linux
  • 1 respostas
  • 35 Views
Martin Hope
Kamil Maciorowski
Asked: 2022-06-08 01:26:03 +0800 CST

O que é `/dev/sda0`? É uma coisa padrão?

  • 20

Ao tentar entender essa outra pergunta , encontrei /dev/sda0sendo mencionado.

Tenho alguma experiência em Linux e estou acostumado com esse esquema onde sda, sdb, … são dispositivos e sda1, sda2, … , sdb1, sdb2, … são partições (cada uma dentro do respectivo dispositivo). Neste esquema sda0, sdb0, … não aparecem. Não me lembro de ter visto sda0alguma vez.

Ainda sda0aparece no U&L SE , no Super User e em outros lugares. Onde aparece, quase sempre parece ser a primeira partição, ou seja, a partição que eu esperaria que aparecesse como sda1no esquema que estou acostumado.

Por outro lado, no Debian 10, posso ver major,minornúmeros como 8,1para sda1, 8,2para sda2etc. Assim, se alguém me perguntasse o que sda0poderia ser, eu diria 8,0que já está atribuído a sda. Esse raciocínio tornaria sda0equivalente a sda, todo o dispositivo. Eu acho que esses números são específicos para Linux e eles podem ser diferentes em um sistema operacional não-Linux Unix(-like), então o raciocínio pode não se aplicar lá.

Na Internet encontrei poucas aparições de sda0usado como um dispositivo completo. Os exemplos são bastante obscuros, porém, podem ser devido a erros de digitação ou alguém estar errado.

Enfim, a pergunta é: é/era /dev/sda0uma coisa padrão? Se sim, o que é/foi? (pode/poderia ser um dispositivo inteiro?). Em que circunstâncias é/era uma coisa padrão? (por exemplo, SO específico, algum kernel antigo, driver específico, dentro de uma máquina virtual, alguma configuração obsoleta(?) do udev ou algo assim).

Estou esperando por respostas que me dêem insights suficientes, então, da próxima vez que /dev/sda0eu vir, poderei dizer a mim mesmo: 'Ah, esse cara provavelmente está usando...'; ou talvez: 'Cuidado! Configuração personalizada adiante'.


Nota lateral: também encontrei menções /dev/hda0e um esquema que começa a enumerar de hda1. Eu totalmente não posso dizer se está intimamente relacionado (um paralelo) ao que eu observei /dev/sda*ou apenas uma coincidência.

partition udev
  • 4 respostas
  • 3671 Views
Martin Hope
Kamil Maciorowski
Asked: 2018-09-06 15:36:32 +0800 CST

Comportamento estranho de `/proc/self/environ` em alguns shells; o que está acontecendo?

  • 9

Estou no Debian GNU/Linux 9. Eu sei que /procé especial , eu sei o que /proc/selfé .

Este comando

sh -c '/bin/cat /proc/self/comm - </proc/self/comm'

rendimentos

cat
sh

O padrão será semelhante se eu usar dashem vez de sh. Mas com bash, kshou zsho resultado é

cat
cat

Tomando /proc/self/statem vez de /proc/self/commposso confirmar que os dois cat-s são de fato o mesmo processo único. Aparentemente, as conchas diferem sob o capô, tudo bem. Agora vamos pegar

sh -c '/bin/cat /proc/self/environ - </proc/self/environ'

Tendo observado o acima, com shou dashespero ver o ambiente do catprimeiro, o ambiente do shell depois. Parece funcionar (ambos os ambientes provavelmente são idênticos de qualquer maneira, então é difícil dizer se tudo funciona como esperado, mas meu ponto é: nenhum environestá vazio).

Com bash, kshou zshespero ver o ambiente das catduas vezes, mas só é impresso uma vez . Dividindo em dois casos separados:

  • bash -c '/bin/cat - </proc/self/environ'não imprime nada, como se environestivesse vazio;
  • bash -c '/bin/cat /proc/self/environ'imprime algo como esperado.

O que está acontecendo? Este não é o caso com commou stat. Por que é environdiferente?

$ uname -a
Linux barbaz 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1 (2018-04-29) x86_64 GNU/Linux
shell io-redirection
  • 1 respostas
  • 654 Views
Martin Hope
Kamil Maciorowski
Asked: 2018-04-11 21:21:18 +0800 CST

Por que `rm` afirma que meu link simbólico é um diretório? [duplicado]

  • 0
Esta pergunta já tem respostas aqui :
Barras à direita em links simbólicos para diretórios (2 respostas)
Fechado há 4 anos .

Eu fiz um link simbólico para um diretório como este:

ln -s /some/directory symlink

Agora eu gostaria de remover o link simbólico:

rm symlink/

Isso não funciona. A mensagem de erro é:

rm: cannot remove 'symlink/': Is a directory

O que estou fazendo errado? Por que rmafirma que meu link simbólico é um diretório? Como remover o link simbólico corretamente?

directory symlink
  • 1 respostas
  • 1018 Views

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