Como o kernel se atualiza enquanto está em execução sem quebrar nada no processo?
Quero baixar arquivos do computador do escritório para o laptop.
Posso conectar minha máquina de escritório por SSH ao servidor da organização e, em seguida, SSH do servidor à minha máquina de escritório.
Os únicos comandos que o servidor da organização aceita são ssh, ssh1 e ssh2.
Como posso baixar um arquivo da máquina do meu escritório (remoto) através do servidor para a minha máquina laptop (local)?
Por que não há um ;
caractere após do
em loops de shell quando escrito em uma única linha?
Aqui está o que quero dizer. Quando escrito em várias linhas, um for
loop se parece com:
$ for i in $(jot 2)
> do
> echo $i
> done
E em uma única linha:
$ for i in $(jot 2); do echo $i; done
Todas as linhas recolhidas recebem um ;
após elas , exceto a do
linha, e se você incluir o ;
, é um erro. Alguém provavelmente muito mais esperto do que eu decidiu que essa era a coisa certa a fazer por um motivo, mas não consigo descobrir qual é o motivo. Parece-me inconsistente.
O mesmo com while
loops também.
$ while something
> do
> anotherthing
> done
$ while something; do anotherthing; done
Primeiro algumas especificações: meu computador é um HP EliteBook 8460p. Ele vem com uma webcam Chicony HP HD integrada.
Meu problema é que muitos aplicativos (bem, pelo menos Skype e guvcview) estão exibindo várias linhas para a mesma webcam; na verdade, se eu fizer isso ls -l /dev | grep video
, recebo o seguinte:
crw-rw---- 1 root video 29, 0 Apr 16 08:13 fb0
crw-rw---- 1 root video 243, 0 Apr 16 08:13 media0
crw-rw----+ 1 root video 81, 0 Apr 16 08:13 video0
crw-rw----+ 1 root video 81, 1 Apr 16 08:13 video1
Tenho 2 /dev/video[n]
com apenas uma webcam (integrada); O Skype funcionará corretamente com /dev/video0
, mas não com /dev/video1
. O mesmo para guvcview.
Se eu conectar outra webcam USB, por exemplo, uma da Logitech, recebo o seguinte dmesg
:
[21222.638802] usb 2-2: new high-speed USB device number 20 using xhci_hcd
[21222.970684] usb 2-2: New USB device found, idVendor=046d, idProduct=08c2, bcdDevice= 0.05
[21222.970755] usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[21222.972518] uvcvideo: Found UVC 1.00 device <unnamed> (046d:08c2)
[21226.044535] uvcvideo 2-2:1.0: Entity type for entity Extension 4 was not initialized!
[21226.044538] uvcvideo 2-2:1.0: Entity type for entity Extension 8 was not initialized!
[21226.044540] uvcvideo 2-2:1.0: Entity type for entity Extension 10 was not initialized!
[21226.044541] uvcvideo 2-2:1.0: Entity type for entity Extension 9 was not initialized!
[21226.044543] uvcvideo 2-2:1.0: Entity type for entity Extension 3 was not initialized!
[21226.044545] uvcvideo 2-2:1.0: Entity type for entity Processing 2 was not initialized!
[21226.044547] uvcvideo 2-2:1.0: Entity type for entity Camera 1 was not initialized!
[21226.044746] input: UVC Camera (046d:08c2) as /devices/pci0000:00/0000:00:1c.7/0000:25:00.0/usb2/2-2/2-2:1.0/input/input35
[21226.137559] usb 2-2: Warning! Unlikely big volume range (=3072), cval->res is probably wrong.
[21226.137569] usb 2-2: [5] FU [Mic Capture Volume] ch = 1, val = 4608/7680/1
E o seguinte com ls -l /dev/ | grep video
:
crw-rw---- 1 root video 29, 0 Apr 16 08:13 fb0
crw-rw---- 1 root video 243, 0 Apr 16 08:13 media0
crw-rw---- 1 root video 243, 1 Apr 16 14:06 media1
crw-rw----+ 1 root video 81, 0 Apr 16 08:13 video0
crw-rw----+ 1 root video 81, 1 Apr 16 08:13 video1
crw-rw----+ 1 root video 81, 2 Apr 16 14:06 video2
crw-rw----+ 1 root video 81, 3 Apr 16 14:06 video3
3 novas entradas: /dev/media1
, /dev/video2
e /dev/video3
.
Até encontrei uma webcam Sony (CEVCECM) que soma até 4 novos dispositivos. Os dmesg
registros:
[21927.665747] usb 2-2: new high-speed USB device number 23 using xhci_hcd
[21927.817330] usb 2-2: New USB device found, idVendor=05e3, idProduct=0608, bcdDevice= 9.01
[21927.817339] usb 2-2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[21927.817343] usb 2-2: Product: USB2.0 Hub
[21927.824119] hub 2-2:1.0: USB hub found
[21927.824814] hub 2-2:1.0: 4 ports detected
[21928.113733] usb 2-2.4: new high-speed USB device number 24 using xhci_hcd
[21928.223184] usb 2-2.4: New USB device found, idVendor=054c, idProduct=097b, bcdDevice=21.12
[21928.223192] usb 2-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[21928.223197] usb 2-2.4: Product: CEVCECM
[21928.223201] usb 2-2.4: Manufacturer: Sony
[21928.223206] usb 2-2.4: SerialNumber: DHZD10412EUHK1
[21928.227506] uvcvideo: Found UVC 1.00 device CEVCECM (054c:097b)
[21928.242592] uvcvideo: Unable to create debugfs 2-24 directory.
[21928.242780] uvcvideo 2-2.4:1.0: Entity type for entity Extension 7 was not initialized!
[21928.242783] uvcvideo 2-2.4:1.0: Entity type for entity Extension 3 was not initialized!
[21928.242785] uvcvideo 2-2.4:1.0: Entity type for entity Processing 2 was not initialized!
[21928.242787] uvcvideo 2-2.4:1.0: Entity type for entity Camera 1 was not initialized!
[21928.242877] input: CEVCECM: CEVCECM as /devices/pci0000:00/0000:00:1c.7/0000:25:00.0/usb2/2-2/2-2.4/2-2.4:1.0/input/input38
E os arquivos de dispositivo resultantes com ls -l /dev | grep video
:
crw-rw---- 1 root video 29, 0 Apr 16 08:13 fb0
crw-rw---- 1 root video 243, 0 Apr 16 08:13 media0
crw-rw---- 1 root video 243, 1 Apr 16 14:18 media1
crw-rw----+ 1 root video 81, 0 Apr 16 08:13 video0
crw-rw----+ 1 root video 81, 1 Apr 16 08:13 video1
crw-rw----+ 1 root video 81, 2 Apr 16 14:18 video2
crw-rw----+ 1 root video 81, 3 Apr 16 14:18 video3
crw-rw----+ 1 root video 81, 4 Apr 16 14:18 video4
crw-rw----+ 1 root video 81, 5 Apr 16 14:18 video5
5 novas entradas: /dev/media1
e /dev/video2
para /dev/video5
.
Eu sinto que os arquivos corretos a serem usados são os /dev/media[n]
únicos, mas o Skype e o guvcview de alguma forma não conseguem fazê-lo e fazem fallback para o arquivo /dev/video[n]
.
Eu não tenho esse problema com o Webcamoid, por exemplo.
Se alguém tiver uma ideia, eu aceito. Enquanto isso vou continuar a investigação...
--- Editado em 14-05-2019 ---
Obteve algumas informações interessantes usando v4l2-ctl --device=/dev/video* --all
. Para a webcam Chicony HP HD, seus 2 arquivos de dispositivo têm recursos de dispositivo diferentes:
# Devices capabilities for /dev/video0
Video Capture
Streaming
Extended Pix Format
# Devices capabilities for /dev/video1
Metadata Capture
Streaming
Extended Pix Format
Obtenho resultados semelhantes para as webcams USB. Então, afinal, talvez o que o Skype e o guvcview não consigam fazer seja apenas listar os dispositivos de vídeo que suportam a Video Capture
capacidade do dispositivo.
Eu quero tentar o cgroup v2, mas não tenho certeza se ele está instalado na minha máquina linux
>> uname -r
4.14.66-041466-generic
Como o cgroup v2 está disponível na versão 4.12.0-rc5, presumo que ele esteja disponível na versão do kernel que estou usando.
https://www.infradead.org/~mchehab/kernel_docs/unsorted/cgroup-v2.html
No entanto, não parece que meu sistema tenha o cgroup v2, pois os arquivos de interface de memória mencionados em sua documentação não estão disponíveis no meu sistema.
https://www.kernel.org/doc/Documentation/cgroup-v2.txt
Parece que eu ainda tenho cgroup v1.
/sys/fs/cgroup/memory# ls
cgroup.clone_children memory.kmem.failcnt memory.kmem.tcp.usage_in_bytes memory.memsw.usage_in_bytes memory.swappiness
cgroup.event_control memory.kmem.limit_in_bytes memory.kmem.usage_in_bytes memory.move_charge_at_immigrate memory.usage_in_bytes
cgroup.procs memory.kmem.max_usage_in_bytes memory.limit_in_bytes memory.numa_stat memory.use_hierarchy
cgroup.sane_behavior memory.kmem.slabinfo memory.max_usage_in_bytes memory.oom_control notify_on_release
docker memory.kmem.tcp.failcnt memory.memsw.failcnt memory.pressure_level release_agent
memory.failcnt memory.kmem.tcp.limit_in_bytes memory.memsw.limit_in_bytes memory.soft_limit_in_bytes tasks
memory.force_empty memory.kmem.tcp.max_usage_in_bytes memory.memsw.max_usage_in_bytes memory.stat
Perguntas de acompanhamento Obrigado Brian pela ajuda. Por favor, deixe-me saber se eu deveria estar criando uma nova pergunta, mas acho que pode ser útil para outras pessoas se eu apenas fizer minhas perguntas aqui.
1) Não consigo adicionar controladores cgroup, seguindo o comando no documento
>> echo "+cpu +memory -io" > cgroup.subtree_control
No entanto, recebi "echo: erro de gravação: argumento inválido". Estou faltando um pré-requisito para esta etapa?
2) Eu executei um contêiner do docker, mas o log do daemon do docker reclamou de não conseguir encontrar "/sys/fs/cgroup/cpuset/docker/cpuset.cpus". Parece que o docker ainda está esperando o cgroupv1. Qual é a melhor maneira de habilitar o suporte ao cgroupv2 no meu daemon docker?
docker -v
Docker version 17.09.1-ce, build aedabb7
Instalei recentemente o Trisquel 8.0 LTS (Flidas) no meu PC Desktop que estava rodando no Trisquel 7.0 por 4 anos. O sistema ficou muito lento. Quando verifico o uso de RAM e CPU, descobri que a CPU está quase em 100%, sintonizo top
para ver o que está acontecendo de errado e descobri que unattended-upgr
está consumindo toda a CPU.
Eu tentei matá-lo usando PID sudo kill 1803
, mas depois de algum tempo, ele começou novamente automaticamente. Eu sei que as atualizações autônomas têm como objetivo instalar atualizações de segurança importantes automaticamente, mas preciso desativá-las para serem iniciadas automaticamente.
Como faço isso?
De https://unix.stackexchange.com/a/458074/674
Lembre-se de usar
--
ao passar argumentos arbitrários para comandos (ou use redirecionamentos sempre que possível). Assimsort -- "$f1"
ou melhorsort < "$f1"
em vez desort "$f1"
.
Por que é preferível usar --
e redirecionar?
Por que é sort < "$f1"
preferido sort -- "$f1"
?
Por que é sort -- "$f1"
preferido sort "$f1"
?
Obrigado.
Os pacotes Python são frequentemente hospedados em muitos repositórios de distribuição. Depois de ler este tutorial, especificamente a seção intitulada "Você realmente quer fazer isso" evitei usar o pip e preferi usar o repositório do sistema, apenas recorrendo ao pip quando preciso instalar um pacote que não está no repositório.
No entanto, como esse é um método de instalação inconsistente, seria melhor usar apenas o pip? Quais são os benefícios/detratores de usar o pip sobre o próprio repositório do sistema para pacotes que estão disponíveis em ambos os lugares?
O link que incluí indica
A vantagem de sempre usar pacotes padrão Debian / NeuroDebian, é que os pacotes são cuidadosamente testados para serem compatíveis entre si. Os pacotes Debian registram dependências com outras bibliotecas para que você sempre obtenha as bibliotecas necessárias como parte da instalação.
Eu uso arco. Este é o caso de outros sistemas de gerenciamento de pacotes além do apt?
É possível chamar uma função declarada abaixo no bash?
Exemplo
if [ "$input" = "yes" ]; then
YES_FUNCTION
elif [ "$input" = "no" ]; then
NO_FUNCTION
else
exit 0;
fi
YES_FUNCTION()
{
.....
.....
}
NO_FUNCTION()
{
.....
.....
}
Acho que no meu diretório raiz, existem alguns diretórios com o mesmo número de inode:
$ ls -aid */ .*/
2 home/ 2 tmp/ 2 usr/ 2 var/ 2 ./ 2 ../ 1 sys/ 1 proc/
Só sei que os nomes dos diretórios são mantidos no diretório pai e seus dados são mantidos no inode dos próprios diretórios.
Estou confuso aqui.
Isso é o que penso quando traço o nome do caminho /home/user1.
- Primeiro, entro no inode 2, que é o diretório raiz que contém as listas de diretórios.
- Em seguida, encontro o nome home emparelhado com o inode 2.
- Então eu volto ao disco para encontrar o inode 2?
- E eu recebo o nome user1 aqui?