Действия

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

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

Нет описания правки
 
(не показано 13 промежуточных версий этого же участника)
Строка 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.
Рекомендую: <code>man ps</code>, раздел "PROCESS STATE CODES"
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 - TASK_UNINTERRUPTIBLE: This process is also Sleeping, but unlike s state,
Больше инфы: http://rus-linux.net/MyLDP/proc/processes-in-Linux.html <br>
will not respond to delivered signals . Used only under specific conditions in
Меньше инфы: https://www.k-max.name/linux/processy-v-linux/
which process interruption may cause an unpredictable device state.


K - TASK_KILLABLE: Identical to the uninterruptible D state, but modified to
Интерактивный режим - процесс переднего плана, имеет состояние со знаком плюс (например R+, S+). Такие процессы ждут ввода от пользователя, такое бывает, например, когда процесс запущен на переднем плане в консоли.
allow the waiting task to respond to a signal to be killed (exited completely).
Utilities frequently display Killable processes as 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
* Sleep
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
<code>knflkr    297090  0.0  0.0  5328  648 pts/3    S+  21:04  0:00 sleep 10000</code>
Stopped and shares the same T state flag.


Z - EXIT_ZOMBIE: A child process signals its parent as it exits. All resources
* Sleep, Ctrl+z, <code>bg</code>
except for the process identity (PlD) a re released.


X - EXIT_DEAD: When the parent cleans up (reaps) the remaining child process
<code>knflkr    297090  0.0  0.0  5328  648 pts/3    S    21:04  0:00 sleep 10000</code>
structure, the process is now released completely. This state will never be
observed in process - listing utilities.
</source>


== iptables ==
<source>
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:


<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>
              D    uninterruptible sleep (usually IO)
server:1900 -> vm:1880
              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


== mail ==
      For BSD formats and when the stat keyword is used, additional characters may be displayed:
MTA - передача писем, только SMTP<br>
MDA - получение писем, MDA общается с MTA для их получения<br>


MTA - exim, postfix, sendmail<br>
              <    high-priority (not nice to other users)
MDA - dovecot, cyrus<br>
              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 ==
Строка 82: Строка 88:


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


== VirtualBox ==
== VirtualBox ==

Текущая версия от 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 который является физическим диском