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-977

derobert's questions

Martin Hope
derobert
Asked: 2021-09-23 10:30:07 +0800 CST

Encontre o caminho do comando original ao substituí-lo por um script de shell?

  • 2

Estou escrevendo um script wrapper para envolver a execução de outro comando; neste caso, o kitchencomando Chef. Meu script também será chamado kitchene colocado mais cedo $PATHpara que a execução kitchendo bash execute meu script wrapper.

A questão é: como eu chamo a versão original do kitchen? A maneira óbvia, é claro, é apenas fornecer o caminho completo - basta colocar /usr/bin/kitcheno script, mas outra pessoa pode instalá-lo em um caminho diferente. E é claro que isso exclui qualquer outro script wrapper — seria bom se a solução fosse empilhável.

Duas abordagens vêm à mente, ambas variantes sobre o mesmo tema:

  1. No script, passe por $PATH. Compare cada entrada $(dirname "$0")usando stato número do dispositivo e o número do inode para ver se é o mesmo diretório. Em caso afirmativo, remova-o de $PATH. Então pode apenas chamar kitchen, porque não deve chamar novamente o script wrapper.
  2. Semelhante ao nº 1, mas faça a $PATHpesquisa manualmente no script e use statem cada resultado vs. $0. Continue pulando até nos encontrarmos, então use o próximo encontrado. Se nunca nos encontrarmos, basta executá-lo normalmente (para lidar com o caso em que o wrapper não está, $PATHmas foi executado fornecendo um caminho para ele)

Existe uma maneira melhor? Ou o código para fazer isso já existe em algum lugar em um sistema típico Debian ou Ubuntu Linux?

shell-script path
  • 3 respostas
  • 113 Views
Martin Hope
derobert
Asked: 2020-01-22 14:53:33 +0800 CST

Como impedir que o systemd desmonte imediatamente o volume btrfs degradado?

  • 3

Perdi um disco no meu volume btrfs de metadados RAID1/dados RAID6 ( /backup). A recuperação deve começar com: mount -o degraded /backup, mas infelizmente, depois de fazer isso, o systemd decidiu desmontá-lo imediatamente (do diário):

Jan 21 17:27:02 Jiji systemd[1]: backup.mount: Unit is bound to inactive unit dev-disk-by\x2duuid-b162055b\x2da73c\x2d4958\x2d98a7\x2dc6ad57867506.device. Stopping, too.
Jan 21 17:27:02 Jiji systemd[1]: Unmounting /backup...
Jan 21 17:27:40 Jiji systemd[1]: Unmounted /backup.

Tentei mudar /etc/fstabpara usar o rótulo em vez do UUID e também executar o systemctl daemon-reload. Infelizmente, o systemd continuou a desmontá-lo imediatamente (agora com um inactive dev-disk-by\x2dlabel….device).

Felizmente, não parece que eu acertei a montagem degradada do btrfs apenas uma vez.

Isso é imediato, portanto, é improvável que um tempo limite de montagem automática (como em Systemd esteja desmontando minha partição /boot ) e eu tentei daemon-reload, a solução em Systemd está desmontando minha partição /boot .

Infelizmente você não pode SIGSTOP pid 1, então isso não funciona ?.

Como posso convencer o systemd a deixá-lo em paz para que eu possa recuperar meu sistema de arquivos?

filesystems systemd
  • 1 respostas
  • 1096 Views
Martin Hope
derobert
Asked: 2019-06-19 15:53:21 +0800 CST

Como crio um escopo do systemd para um processo já existente na linha de comando?

  • 10

Eu tenho uma máquina executando a hierarquia cgroups v2 (unificada), então o systemd é responsável por gerenciar todos os cgroups e a delegação para a instância do usuário systemd funciona. Eu gostaria de realizar o controle de recursos em um grupo de processos, então preciso deles juntos em uma unidade — presumivelmente um escopo systemd .

Normalmente, systemd-runfaria isso - mas infelizmente esses processos já estão em execução e não quero reiniciá-los.

Como posso criar um escopo do systemd a partir de processos já existentes? A documentação da Interface do Grupo de Controle me diz que é possível, mas não consegui encontrar uma maneira pela linha de comando. Nem systemctlnem systemd-runparecem capazes de fazer isso.

Existe uma maneira a partir da linha de comando? Estou executando o systemd v241 se for importante.

linux systemd
  • 1 respostas
  • 1706 Views
Martin Hope
derobert
Asked: 2019-06-18 11:51:05 +0800 CST

libvirt não iniciará VMs com "erro: valor inválido '+cpu' para 'cgroup.subtree_control': argumento inválido"

  • 1

Em uma estação de trabalho que tenho, libvirt parou de funcionar; ele não iniciará mais VMs:

$ virsh --connect qemu:///system 'start westerley-pool'
error: Failed to start domain westerley-pool
error: Invalid value '+cpu' for 'cgroup.subtree_control': Invalid argument

Esta máquina está usando a hierarquia unificada cgroupv2 (que deveria ser suportada a partir de 4.9.0 ). Os controladores habilitados são memória e pids (verificados via cat /sys/fs/cgroup/cgroup.subtree_control), portanto, não é surpreendente que a CPU não funcione. Mas a documentação do libvirt cgroups diz que o controlador não é obrigatório, ele simplesmente não será usado se não estiver disponível.

Eu tentei reiniciar libvirtd.service, apenas no caso de consertá-lo. Nenhuma mudança.

A documentação também diz que posso definir explicitamente quais controladores usar, então tentei configurar cgroup_controllers = [ "memory" ]( /etc/libvirt/qemu.confnão foi definido anteriormente). Novamente reiniciei o libvirtd.service; ainda não funciona.

Não vi nada nos logs além de uma repetição da mensagem de erro acima.

Prefiro não habilitar o controlador de cpu, pois acredito que tem um custo de desempenho e não preciso dele.

SO: Debian testando
libvirt: 5.0.0-3, do Debian.
kernel: 4.19.0-5-amd64, novamente Debian.

Como posso fazer o libvirt funcionar nesta máquina novamente?

kvm qemu
  • 1 respostas
  • 444 Views
Martin Hope
derobert
Asked: 2018-10-17 10:00:48 +0800 CST

Aspas curvas do Firefox quebradas no Helvetica, mas não na maioria das outras fontes e não em outros aplicativos?

  • 2

Apenas no Firefox (LibreOffice e Chromium funcionam bem), e começando recentemente, notei que o Helvetica está renderizando de forma estranha. Aspas encaracoladas são quebradas, mas as retas não. Alguns testes adicionais mostram que o Times também tem o problema. (Eu tenho versões TrueType dessas fontes).

Renderização quebrada de Helvetica e Times

Além disso, Helvetica e Times não parecem estar usando renderização de subpixel, ao contrário das outras fontes (e como fazem em, por exemplo, Chromium).

O arquivo de teste que usei foi:

<!DOCTYPE html>
<html>
  <meta charset="utf-8">
  <head><title>Test Fonts</title></head>
  <body>
    <p style="font-family: Helvetica; font-size: 12pt">“Curly” "Straight" Helvetica</p>
    <p style="font-family: DejaVu Sans; font-size: 12pt">“Curly” "Straight" DejaVu Sans</p>
    <p style="font-family: Times; font-size: 12pt">“Curly” "Straight" Times</p>
    <p style="font-family: Times New Roman; font-size: 12pt">“Curly” "Straight" Times New Roman</p>
    <p style="font-family: Helvetica; font-size: 24pt">“Curly” "Straight" Helvetica (Big)</p>
    <p style="font-family: Helvetica; font-size: 9pt">“Curly” "Straight" Helvetica (Small)</p>
  </body>
</html>

Como posso pelo menos fazer com que o Firefox pare de exibir pequenas aspas?

x11 firefox
  • 1 respostas
  • 159 Views
Martin Hope
derobert
Asked: 2018-07-31 11:22:09 +0800 CST

Por que chmod g+s em um diretório está sendo ignorado?

  • 3

Eu tenho um repositório git (na verdade git-annex) que estou tentando tornar compartilhado, parte do qual envolve definir o bit set-group-id em vários diretórios. Isso está em uma caixa Debian GNU/Linux Stretch, em um sistema de arquivos ext4. Por algum motivo estranho, chmod g+s DIRECTORYestá sendo ignorado (linhas em branco ao redor chmoddo bloco adicionadas para facilitar a leitura):

$ stat objects
  File: objects
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd06h/64774d    Inode: 12353692    Links: 260
Access: (0775/drwxrwxr-x)  Uid: ( 1000/ anthony)   Gid: ( 1025/git-books)
Access: 2018-07-30 14:43:13.831641743 -0400
Modify: 2018-07-28 14:28:14.970667931 -0400
Change: 2018-07-30 14:46:38.179597449 -0400
 Birth: -

$ chmod g+s objects
$ echo $?
0

$ stat objects
  File: objects
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd06h/64774d    Inode: 12353692    Links: 260
Access: (0775/drwxrwxr-x)  Uid: ( 1000/ anthony)   Gid: ( 1025/git-books)
Access: 2018-07-30 14:43:13.831641743 -0400
Modify: 2018-07-28 14:28:14.970667931 -0400
Change: 2018-07-30 14:50:43.355539381 -0400
 Birth: -

O que verifiquei até agora:

  • Não parece haver nenhuma opção de montagem estranha (por exemplo, nosuid) que possa impedi-lo de funcionar. Eu verifiquei fstab e /proc/mounts, o que mostra/dev/mapper/slow-srv /srv ext4 rw,relatime,nobarrier,errors=remount-ro,stripe=384,data=ordered 0 0
  • Não parece haver nenhuma ACL estranha no diretório; para ter certeza que eu fiz setfacl -b objects. Mesmo depois de fazer isso, o chmod continuou a não funcionar.
  • straceon chmodmostra o syscall com sucesso e tem o bit sgid definido:
    fchmodat(AT_FDCWD, "annex", 02775) = 0
  • Outros diretórios no mesmo sistema de arquivos têm o bit set-group-id definido. Na verdade, eu configurei alguns mais cedo na mesma sessão, em um repositório git-annex diferente.
files permissions
  • 1 respostas
  • 2395 Views
Martin Hope
derobert
Asked: 2018-02-03 22:09:43 +0800 CST

dmsetup luksFormat criando uma inconsistência de alinhamento

  • 5

Ao desbloquear um volume LUKS recém-formatado, recebi um aviso no log do kernel:

kernel: device-mapper: table: 253:14: adding target device sdk1 caused an alignment inconsistency: physical_block_size=4096, logical_block_size=512, alignment_offset=0, start=33553920

De acordo com outra pergunta, um falso aviso é possível , então confirmei que é um aviso verdadeiro: 33553920 não é divisível por 4096. Usei ainda luksDump para confirmar:

cryptsetup luksDump /dev/sdk1  | grep 'Payload offset'
Payload offset: 65535

que não é múltiplo de 8 (4096 ÷ 512 = 8)

lsblk -t /dev/sdkconfirma que o Linux está ciente dos requisitos de alinhamento:

NAME             ALIGNMENT MIN-IO   OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE  RA WSAME
sdk                      0   4096 33553920    4096     512    1 cfq       128 128   32M
└─sdk1                   0   4096 33553920    4096     512    1 cfq       128 128   32M

dmsetup está documentado para lidar com o próprio alinhamento, por que criou um desalinhamento? E existem argumentos para luksFormat para evitar o problema?

linux encryption
  • 1 respostas
  • 1733 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