Действия

Linux: различия между версиями

Материал из lulzette's wiki

Нет описания правки
Нет описания правки
 
(не показано 16 промежуточных версий этого же участника)
Строка 1: Строка 1:
== RAM ==
[[Category:Админство (Ops)]]


<blockquote>
== fstab ==
VIRT (Virtual memory) — отображает общий объём памяти, который может использоваться процессом в данный момент. Включает в себя реально используемую память, другую память (например — память видеокарты), файлы на диске, загруженные в память (например — файлы библиотек), и память, совместно используемую с другими процессами (SHR или Shared memory). Она же отображается как VSZ в результатах ps (Process status).


RES (Resident memory size) — отображает, сколько физической памяти занято процессом (используется для отображения в колонке %MEM в top-е). Она же отображается как RSS в результатах ps (Process status).
=== не фейлиться если проблемы ===


SHR (Shared Memory size) — отображает объём VIRT памяти, который используется процессом совместно с другими процессами, например — файлы библиотек.
<code>/dev/disk/by-uuid/1bd74118-86ae-4701-b3b0-dfbf0574274e /disks ext4 defaults,noatime,nofail 0 0</code>


SWAP (Swapped size) — память, которая в данный момент не используется (не-RES), но доступна процессу, при этом она «выгружена» в swap-раздел диска.
== открытые процессом файлы ==


VSZ  (VSS) — Virtual Size in Kbytes (alias vsize) или Virtual memory — особый уровень абстракции «над» архитектурой физической памяти.
<code>/proc/PIDOF/fd/</code>


Каждый процесс получает в использование виртуальное адресное пространство, и при обращении к адресу в нём — адрес сначала конвертируется в адрес физической памяти (main memory — MM, она же RAM) при помощи Memory Management Unit (MMU). Данные в виртуальном адресном пространстве могут располагаться в основной памяти, на диске (в swap-файле), сразу в обоих местах или на какой-то внешней памяти (например — памяти видеокарты).  Однако, как только процесс запрашивает какие-то данные, которые в настоящий момент не находятся в основной памяти системы — они туда загружаются. Таким образом, процесс не считывает данные напрямую с диска (memory mapping), но некоторые или все его ресурсы могут находится на «внешней памяти» в любое время, а его страницы памяти могут быть выгружены в swap, что бы освободить память для других процессов.
== сигналы (процессы) ==


RSS — Resident Set Size — количество выеделенной процессу физической (MM) памяти в настоящий момент. Это физическая память, которая используется для рамзмещения страниц виртуальной памяти (virtual memory pages), которая используется процессом постоянно. RSS всегда будет менее или равна памяти VSZ.
Ctrl+C - SIGINT


Вообще это очень большая тема, потому — несколько ссылок:
SIGTERM ожидает завершения процесса, SIGKILL завершает процесс принудительно, не дожидаясь корректного завершения программы.
</blockquote>


== Process's states ==
https://www.geeksforgeeks.org/segmentation-fault-sigsegv-vs-bus-error-sigbus/


<source>
SIGSEGV - Нарушение прав доступа к памяти, например, приложение попыталось записать в Read-only память.
 
SIGBUS - обращение процесса к некорректному адресу памяти.
 
<code>The main difference between Segmentation Fault and Bus Error is that Segmentation Fault indicates an invalid access to a valid memory, while Bus Error indicates an access to an invalid address.</code>
 
SIGCHLD - сигнал отправляет родительский процесс дитенышу, чтобы тот завершил свою деятельность [https://www.quora.com/What-is-SIGCHLD-in-Linux?share=1]


R - TASK_RUNNING: The process is either executing on a CPU or waiting to run.
== Состояние процессов ==
S - TASK_INTERRUPTIBLE : The process is waiting for some condition: a
hardware request, system resource access, or signal. When an event or
signal satisfies the condition , the process returns to Running.


D - TAS K_U N I N T E R R U PT I B L E : This p rocess is a l s o Sleeping, but u n l i ke s state,
Рекомендую: <code>man ps</code>, раздел "PROCESS STATE CODES"
w i l l not res p o n d to d e l ivered s i g n a l s . Used o n l y u n d e r specific conditions i n
w h i c h p rocess i nterruption may cause a n u n p re d i ct a b l e d evice state.


K - TAS K_K I L L A B L E : I d e n t i c a l to the u n i nterrupt i b l e D state, but modified to
Больше инфы: http://rus-linux.net/MyLDP/proc/processes-in-Linux.html <br>
a l l ow the w a i t i n g t a s k to res pond to a s i g n a l to be k i l l e d (exited c o m p l etely).
Меньше инфы: https://www.k-max.name/linux/processy-v-linux/
U t i l i t ies f re q u e n t l y d i s p l a y Killable p rocesses a s D state.


T - TAS K_STO P P E D : T h e p rocess h a s been Stopped (s u s p e n ded), u s u a l l y by
Интерактивный режим - процесс переднего плана, имеет состояние со знаком плюс (например R+, S+). Такие процессы ждут ввода от пользователя, такое бывает, например, когда процесс запущен на переднем плане в консоли.
b e i n g s i g n a led by a user or an other process. The process can be continued
(resumed) by an others ignal to return to Running.


T - TASK_TRACED: A process that is being debugged is also temporarily
* Sleep
Stopped and shares the same T state flag.


Z - EXIT_ZOMBIE: A child process signals its parent as it exits. All resources
<code>knflkr    297090  0.0  0.0  5328  648 pts/3    S+  21:04  0:00 sleep 10000</code>
except for the process identity (PlD) a re released.


X - EXIT_DEAD: When the parent cleans up (reaps) the remaining child process
* Sleep, Ctrl+z, <code>bg</code>
structure, the process is now released completely. This state will never be
observed in process - listing utilities.
</source>


== iptables ==
<code>knflkr    297090  0.0  0.0  5328  648 pts/3    S    21:04  0:00 sleep 10000</code>


<code>sudo iptables -t nat -A PREROUTING --dst 192.168.100.101 -p tcp --dport 1900 -j DNAT --to-destination 10.0.0.2:1880</code>
<source>
server:1900 -> vm:1880
PROCESS STATE CODES
      Here are the different values that the s, stat and state output specifiers (header "STAT" or "S")
      will display to describe the state of a process:


== mail ==
              D    uninterruptible sleep (usually IO)
MTA - передача писем, только SMTP<br>
              I    Idle kernel thread
MDA - получение писем, MDA общается с MTA для их получения<br>
              R    running or runnable (on run queue)
              S    interruptible sleep (waiting for an event to complete)
              T    stopped by job control signal
              t    stopped by debugger during the tracing
              W    paging (not valid since the 2.6.xx kernel)
              X    dead (should never be seen)
              Z    defunct ("zombie") process, terminated but not reaped by its parent


MTA - exim, postfix, sendmail<br>
      For BSD formats and when the stat keyword is used, additional characters may be displayed:
MDA - dovecot, cyrus<br>
 
              <   high-priority (not nice to other users)
              N    low-priority (nice to other users)
              L    has pages locked into memory (for real-time and custom IO)
              s    is a session leader
              l    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
              +    is in the foreground process group
</source>


== nextcloud preview configuration ==
== nextcloud preview configuration ==
  I don't want to generate all the preview sizes
  I don't want to generate all the preview sizes

This is possible since version 1.0.8. Just set the correct values via the command line

This is possible since version 1.0.8. Just set the correct values via the command line

```
<source>
./occ config:app:set --value="32 64 1024" previewgenerator squareSizes
./occ config:app:set --value="32 64 1024" previewgenerator squareSizes
./occ config:app:set --value="64 128 1024" previewgenerator widthSizes
./occ config:app:set --value="64 128 1024" previewgenerator widthSizes
./occ config:app:set --value="64 256 1024" previewgenerator heightSizes
./occ config:app:set --value="64 256 1024" previewgenerator heightSizes
```
</source>

This will only generate:

This will only generate:
* square previews ofL 32x32, 64x64 and 1024x1024* aspect ratio previews with a width of: 64, 128 and 1024
* square previews ofL 32x32, 64x64 and 1024x1024* aspect ratio previews with a width of: 64, 128 and 1024
Строка 78: Строка 84:
* The smallest size is 32
* The smallest size is 32
* The max size is determined by your preview settings in config.php
* The max size is determined by your preview settings in config.php


== Some stuff ==
== Some stuff ==


<code>disown -a && exit</code> - выйти не закрывая работающие процессы
<code>disown -a && exit</code> - выйти не закрывая работающие процессы
== motd ==
https://habr.com/ru/post/529746/


== VirtualBox ==
== VirtualBox ==


<code>VBoxManage clonehd absolutepath/image.vdi image.img --format raw</code> - сконвертировать vdi в сырой диск
<code>VBoxManage clonehd absolutepath/image.vdi image.img --format raw</code> - сконвертировать vdi в сырой диск<br>
<code>VBoxManage internalcommands createrawvmdk -filename disk.vmdk -rawdisk /dev/sda</code> - создать vmdk который является физическим диском

Текущая версия от 20:20, 24 сентября 2021


fstab

не фейлиться если проблемы

/dev/disk/by-uuid/1bd74118-86ae-4701-b3b0-dfbf0574274e /disks ext4 defaults,noatime,nofail 0 0

открытые процессом файлы

/proc/PIDOF/fd/

сигналы (процессы)

Ctrl+C - SIGINT

SIGTERM ожидает завершения процесса, SIGKILL завершает процесс принудительно, не дожидаясь корректного завершения программы.

https://www.geeksforgeeks.org/segmentation-fault-sigsegv-vs-bus-error-sigbus/

SIGSEGV - Нарушение прав доступа к памяти, например, приложение попыталось записать в Read-only память.

SIGBUS - обращение процесса к некорректному адресу памяти.

The main difference between Segmentation Fault and Bus Error is that Segmentation Fault indicates an invalid access to a valid memory, while Bus Error indicates an access to an invalid address.

SIGCHLD - сигнал отправляет родительский процесс дитенышу, чтобы тот завершил свою деятельность [1]

Состояние процессов

Рекомендую: man ps, раздел "PROCESS STATE CODES"

Больше инфы: http://rus-linux.net/MyLDP/proc/processes-in-Linux.html
Меньше инфы: https://www.k-max.name/linux/processy-v-linux/

Интерактивный режим - процесс переднего плана, имеет состояние со знаком плюс (например R+, S+). Такие процессы ждут ввода от пользователя, такое бывает, например, когда процесс запущен на переднем плане в консоли.

  • Sleep

knflkr 297090 0.0 0.0 5328 648 pts/3 S+ 21:04 0:00 sleep 10000

  • Sleep, Ctrl+z, bg

knflkr 297090 0.0 0.0 5328 648 pts/3 S 21:04 0:00 sleep 10000

PROCESS STATE CODES
       Here are the different values that the s, stat and state output specifiers (header "STAT" or "S") 
       will display to describe the state of a process:

               D    uninterruptible sleep (usually IO)
               I    Idle kernel thread
               R    running or runnable (on run queue)
               S    interruptible sleep (waiting for an event to complete)
               T    stopped by job control signal
               t    stopped by debugger during the tracing
               W    paging (not valid since the 2.6.xx kernel)
               X    dead (should never be seen)
               Z    defunct ("zombie") process, terminated but not reaped by its parent

       For BSD formats and when the stat keyword is used, additional characters may be displayed:

               <    high-priority (not nice to other users)
               N    low-priority (nice to other users)
               L    has pages locked into memory (for real-time and custom IO)
               s    is a session leader
               l    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
               +    is in the foreground process group

nextcloud preview configuration

I don't want to generate all the preview sizes


This is possible since version 1.0.8. Just set the correct values via the command line

./occ config:app:set --value="32 64 1024" previewgenerator squareSizes
./occ config:app:set --value="64 128 1024" previewgenerator widthSizes
./occ config:app:set --value="64 256 1024" previewgenerator heightSizes


This will only generate:

  • square previews ofL 32x32, 64x64 and 1024x1024* aspect ratio previews with a width of: 64, 128 and 1024
  • aspect ratio previews with a height of: 64, 256 and 1024


Note:

  • preview sizes are always a power of 2.
  • The smallest size is 32
  • The max size is determined by your preview settings in config.php

Some stuff

disown -a && exit - выйти не закрывая работающие процессы

motd

https://habr.com/ru/post/529746/

VirtualBox

VBoxManage clonehd absolutepath/image.vdi image.img --format raw - сконвертировать vdi в сырой диск
VBoxManage internalcommands createrawvmdk -filename disk.vmdk -rawdisk /dev/sda - создать vmdk который является физическим диском