LINUX.ORG.RU

Избранные сообщения slowpony

Вопрос про mmap() файлов в память.

 

Предположим у меня есть файл большого размера с данными в некоторой древовидной структуре.

Необходимо в режиме read only иметь быстрый случайный доступ к разным узлам дерева, но при этом не хотелось бы, что процесс отъедал много реальной оперативной памяти, так как есть другой процесс, которому она нужна. Думаю замапить весь файл в память с помощью функции mmap().

Правильно ли я понимаю, что ОС будет автоматически подгружать в память странички по мере чтения и только те, к которым обратились? И выгружать те странички, которыми давно не пользовались, если физической оперативной памяти на всех не хватает и она нужна другому процессу.

Или я слишком много хочу от ОС?

pathfinder
()

Просто оставлю это здесь: Игра в supertux2 с множественными `tail /dev/zero` в фоне без зависаний

 

Собственно: https://youtu.be/fPnbnNX9CPE

Система на HDD, Debian 9 Mate, MemTotal=10GB, swap on zram (disksize=14GB). memavaild, prelockd и nohang-desktop работают в фоне и помогают сохранять отзывчивость несмотря ни на что.

https://github.com/hakavlad/nohang

https://github.com/hakavlad/prelockd

https://github.com/hakavlad/memavaild

Кратко: prelockd - новейшее оружие в борьбе за отзывчивость при нехватке памяти.

Спрашивайте ответы.

hakavlad
()

Полнодисковое шифрование (cryptsetup) c UEFI и NVME

 , ,

Добрый день. До недавнего времени всегда без проблем делал полнодисковое шифрование на компах с Debian. По стандартной схеме:

  • ставим систему на флешку с разделами / и swap, /boot в раздел другой флешки, которая затем будет загрузочной;
  • после установки грузимся с этих двух флешек;
  • шифруем диск, раскатываем на нем lvm (lv-root, lv-swap), header диска сбрасываем в папку на загрузочную флешку, туда же ключи, место под header’ом затираем;
  • rsynk’ом синхронизируем систему с первой флешки на зашифрованный диск;
  • в crypttab на диске прописываем подключать lv-root и где брать header и ключи; во fstab - вместо UUID корня и swap - lv-root, lv-swap;
  • update-initramfs, в grub - новый путь к корню (lv-root вместо UUID).

Перезагружаемся и все работает.

Уже неделю бьюсь над реализацией подобной схемы на компах с UEFI и NVME. Другие купить уже просто не продают, буржуи.

Ставлю debian buster, пробовал также последнюю ubuntu.

На загрузочной флешке создал дополнительно этот долбаный EFI-раздел. Вроде система встала.

При update-initframs варнинги, что он шифрованных разделов в системе нет, удалите мол cryptsetup-initramfs за ненадобностью.

После перезагрузки - Busybox и (initramfs).

Уже и chroot’ился в диск после синхронизации, делая update-initramfs из-под chroot.

Накопал, что в /etc/cryptsetup-initramfs/conf-hook теперь не надо делать CRYPTSETUP=y, а в /etc/initramfs-tools/conf.d/cryptsetup надо добавить:

CRYPTSETUP=yes export CRYPTSETUP

а в /etc/default/grub: GRUB_ENABLE_CRYPTODISK=y

Все - как мертвому припарка.

Получал странные результаты.

То при загрузке груб говорит, что не видит хидера для открытия блочного устройства (когда изначальная флешка вытащена и грузиться надо с диска).

То вроде все прописано как надо, но при загрузке (когда вторая флешка вставлена), он потупит и грузится, монтируя корнем ее. Где он ее берет, если в crypttab и во fstab прописан диск?

Какой-то полтергейст. Но четкое ощучение, что во всем виноват EFI и NVME.

Я что-то пропустил в шифровании? Информации по особенностям реализации вышеизложенной схемы на новых компах не нашел. Очень прошу ткнуть пальцем или примерно объяснить в чем заковыка.

Neuro75
()

Английский

 

Посоветуйте блог или канал по английскому наподобие https://phonetic-fanatic.ru

Интересует такой же фанатичный подход к английскому.

Посоветуйте ещё хороший курс (можно видео) по истории английского.

Материалы желательно на русском, так как на слух английский воспринимается пока не очень.

scanner
()

Создание загрузочных образов boobstrap v1.0

 

Группа Open Source

Хочу представить вашему вниманию фреймворк под названием boobstrap, написаный на POSIX shell, для создания загрузочных образов с дистрибутивами GNU/Linux. Фреймворк позволяет пройти весь пусть в три простых шага: от развёртывания системы в chroot, создания initramfs-образа включающего в себя систему из chroot, и в конечном счёте загрузочного ISO-образа. boobstrap включает в себя три утилиты mkbootstrap, mkinitramfs и mkbootisofs соответсвенно.

( читать дальше... )

>>> Получить исходный код (github.com)

Spoofing
()

Вопрос про программы-таймеры

 , ,

Подскажите в какую программу можно забить такие последовательности для выпечки хлеба (образно):

«Багет»:

- смешать воду и муку
- ждать 2 часа
- замесить тесто
- ждать 1 час
- ламинация
- ждать 1 час
- сложить тесто
- ждать 45 мин.
и т.д.
«Чиабатта»:
- смешать воду и муку
- ждать 2 часа
- замесить тесто
- ждать 1 час
- ламинация
- ждать 1 час
- сложить тесто
- ждать 45 мин.
и т.д.
...

И в дальнейшем, когда я захочу испечь «Багет», я бы зашёл в эту программу и нажал одну кнопку, и запустилась бы вся эта последовательность. С визуальными, звуковыми оповещениями, с повтором индикации (snooze).

Спасибо заренее.

devorg
()

Реальные вопросы на собеседовании

 

Задавайте только реальные вопросы с собеседования. Кто хочет может отвечать на эти вопросы, задавший вопрос должен ответить зачтено или нет и провести разбор ответа, указать на ошибки и недостатки в ответе. Если зачета никто не получил в течении недели, автор вопроса сам дает ответ. Остальные естественно тоже могут участвовать в обсуждениях.

Lzzz
()

OpenVPN работа с сертификатами

 

Всем Привет!!!

Ситуация такая: созданы сертификаты, поступает указания о постепенной блокировки некоторых из списка созданных, отзываем сертификаты, после ситуация меняется и поступает указание по восстановлению отозванных сертификатов (так сказать сценарий ослабления-ужесточения карантина).

Как правильно восстановить сертификат и возможно ли это вообще сделать без создания новых? И есть ли способ временно отключить клиентский сертификат, например убрав его из папки ключей с сервера, а потом при необходимости просто выложить в эту папку восстановив работу сертификата?

supp0rtmail2019
()

Загрузка любого дистрибутива в RAM

 mkchrootrd,

Здравствуйте мои юные кали-хакеры и любители оставаться анонимными. С утра, ковыряя VDS (пользуюсь услугами ру-провайдера), [ДАННЫЕ УДАЛЕНЫ] запрос, и [ДАННЫЕ УДАЛЕНЫ] дамп диска [ДАННЫЕ УДАЛЕНЫ].

А теперь скрипт, который из кастомного, т.е. созданного и настроенного вами chroot'а создаёт initramfs образ, готовый к загрузке и работе в tmpfs.

С ним вы можете на любой системе прямо «на лету» свичнуться в tmpfs, хоть прямо сейчас, на своём компьютере. Предварительно установив в chroot любой дистрибутив по желанию и настроив его под себя. А потом скриптом упаковать его в initramfs образ и свичнуться, да.

Для создания минимального (от слова «маленький», а не «огрызок») образа потребуется squashfs-tools. Чтобы свичнуться «на лету» нужен kexec-tools. Установите их. В ядре должны быть включены опции: CONFIG_OVERLAY_FS=y, CONFIG_SQUASHFS=y и CONFIG_SQUASHFS_XZ=y. [личное мнение: ZSTD получается размером больше, чем XZ]

Например. Хотите генту?

# mkdir gentoo_chroot/
# cd gentoo_chroot/
# wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20200519T155804Z/stage3-amd64-20200519T155804Z.tar.xz
# tar xf stage3-amd64-*.tar.xz
# rm stage3-amd64-*.tar.xz
# cd ..

На этом этапе мы получили ванильную генту в gentoo_chroot/. Рекомендую её настроить, хотя бы сделать chroot gentoo_chroot/ /bin/bash и установить passwd для root, иначе в систему вы не войдёте. Я не знаю, что это за особенность такая, не давать установить пароль если его нет. В моём CRUX когда пароль на root отсутствует и ты логинишься первый раз (в tty или в ssh по ключу), оно просто предлагает установить пароль. Какая тут может быть дыра в безопасности на свежеустановленной системе? Не знаю...

Предлагаю так же в gentoo_chroot/ скопировать модули и фирмварь для корректной работы текущего ядра и железа.

# cp -a /lib/modules gentoo_chroot/lib/modules
# cp -a /lib/firmware gentoo_chroot/lib/firmware

Ну и создадим образ наконец.

# ./mkchrootrd gentoo_chroot/ ~/gentoo_initrd

Усё. У нас теперь целая настоящая гента в gentoo_initrd файлике упакована. Давайте загрузимся же в неё скорее с текущим ядром.

# eval $(cat /proc/cmdline | cut -f 1 -d \ )
# kexec -l $BOOT_IMAGE --initrd=gentoo_initrd --reuse-cmdline
# kexec -e

Если вы не хотите делать kexec по каким-то причинам, то положите этот же образ в свой /boot, а в параметрах загрузки укажите initrd /gentoo_initrd. Перезагрузитесь и получите тот-же результат.

Ура! Гента загрузилась. Тоже самое можно проделать с любым дистрибутивом, просто установите его, настройте как вам угодно, а затем скриптом создайте initramfs образ. Я уж взял для примера Gentoo, не стал лишний раз приводить в пример CRUX.

Жмём Reset чтобы сбросить всё и загрузиться в свою систему с морально устаревшего M.2 NVMe накопителя обратно.

Перевёл свою VDS на работу в tmpfs. Диск /dev/vda отформатировал в NTFS. Рекомендую всем. 👍👍👍👍👍👍

Скрипт:

#!/bin/bash
#
# Author: Sp00f1ng <sp00f1ng@sp00f1ng.com>
# License: Public Domain
#
################################################################################
#
# mkchrootrd chroot_directory/ [initrd_image]
#
################################################################################
# 
# Depends on: squashfs-tools
# Optional:   kexec-tools
# Kernel:
#
# File systems  --->
#    <*> Overlay filesystem support
#    [*] Miscellaneous filesystems  --->
#       <*> SquashFS 4.0 - Squashed file system support
#          [*] Include support for XZ compressed file systems
#
################################################################################
#
# Example usage:
#
# mkdir gentoo_chroot/
# cd gentoo_chroot/
# wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20200519T155804Z/stage3-amd64-20200519T155804Z.tar.xz
# tar xf stage3-amd64-*.tar.xz
# rm stage3-amd64-*.tar.xz
#
# [.. do something else with gentoo_chroot/ like additional configuration ...]
# [ cp -a /lib/modules ./lib/modules ]
# [ cp -a /lib/firmware ./lib/firmware ]
#
# cd ../
#
# ./mkchrootrd gentoo_chroot/ ~/gentoo_initrd
#
# eval $(cat /proc/cmdline | cut -f 1 -d \ )
# kexec -l $BOOT_IMAGE --initrd=gentoo_initrd --reuse-cmdline
# kexec -e
# 
# Have fun and happy hacking day 1 <3 <3 7 !

panic() {
	if [ -e "$TMP" ]; then
		rm -rf $TMP 2>/dev/null
	fi
	exit ${1:1}
}

got_help() {
	grep ^\# "$0"
}

got_cmdline() {
	while [ "$1" ]; do
		if [ ! -n "$CHROOT_DIR" ]; then
			CHROOT_DIR="$1"
			shift
			continue
		fi
		if [ ! -n "$INITRD_IMG" ]; then
			INITRD_IMG="$1"
			shift
			continue
		fi
		shift
	done
}

cp_bin() {
	local src="$1"
	local dst="$2"
	local dep=""

	if [ "$dst" = "" ]; then
		dst="$src"
	fi

	if [ -e "$TMP$dst" ]; then
		return
	fi

	install -D -m 0755 "$src" "$TMP$dst"

	for dep in $(ldd "$src" 2>/dev/null | grep -o '/.* '); do
		cp_bin "$dep"
	done
}

mk_env() {
	for dir in proc sys dev run mnt overlay; do
		install -d $TMP/$dir
	done

	for dev in console tty tty1 null; do
		cp -a "/dev/$dev" "$TMP/dev/$dev"
	done

	for bin in sh switch_root mount umount mkdir rmdir; do
		cp_bin "$(which $bin)"
	done

	touch $TMP/init
	chmod +x $TMP/init

	cat > $TMP/init << EOF
#!/bin/sh
mount -t proc none /proc
echo "0" > /proc/sys/kernel/printk
mount -t sysfs none /sys
mount -t devtmpfs devtmpfs /dev
mount -t tmpfs none /run
mount -t tmpfs tmpfs /overlay
lowerdir="/lower"
upperdir="/overlay/upper"
workdir="/overlay/work"
mkdir -p \$lowerdir
mkdir -p \$upperdir
mkdir -p \$workdir
mount -t squashfs -o ro /root.sqfs \$lowerdir
mount -t overlay -o ro,lowerdir="\$lowerdir",upperdir="\$upperdir",workdir="\$workdir" overlay /mnt
umount /proc
umount /sys
umount /dev
umount /run
exec switch_root /mnt /sbin/init
EOF
}

main() {
	CHROOT_DIR=""
	INITRD_IMG=""

	got_cmdline "$@"

	if [ ! -n "$CHROOT_DIR" ] || [ ! -n "$INITRD_IMG" ]; then
		got_help
		panic 0
	fi

	if [ ! -d "$CHROOT_DIR" ]; then
		echo "'$CHROOT_DIR' is not directory."
		panic 1
	fi

	if [ ! -x "$(which mksquashfs)" ]; then
		echo "'mksquashfs' squashfs-tools not found."
		panic 1
	fi

	mk_env

	mksquashfs $CHROOT_DIR $TMP/root.sqfs \
		-b 1048576 -comp xz -Xdict-size 100%

	cd $TMP
	echo "Building Initial RAM Disk [$INITRD_IMG]"
	find . -print0 | cpio --null --create --format=newc --verbose > "$INITRD_IMG"
	echo "Done [$INITRD_IMG]"
}

trap "panic" INT HUP QUIT TERM EXIT

readonly MKCHROOTRD_COMMAND="$0"
readonly MKCHROOTRD_VERSION="1.0"

TMP=$(mktemp -d)

main "$@"

# EOF
Spoofing
()

Интересные книги по внутренностям линукса

 , , , ,

Интересно, какие книги можно почитать по внутренностям линукса?

Особенно меня интересуют новшества, типа cgroups v2, виртуальной машины беркли, новые неймспейсы и их особенности, нововведения в systemd, современный SELinux, IMA+(v)TPM, асинхронная работа с дескрипторами, новые планировщики перегрузки TCP, современный Xen с его встроенными драйверами, блочная и файловая подсистемы.

Нужна не только теория, но и возможность реального применения.

aafedorov1989
()

Docker vs LXD(LXC)

 , , ,

Хочу сделать ремарку, что я вообще в этом не специалист и разбирался со всем на ощупь.

Так уж случилось что пришлось столкнуться с контейнерами. Решил освоить для отделения мух от котлет разделения девелоперской машины и рабочего сервера для локальных проектов. Хотел настроить git и LSP на сервере, и выбор пал на текущие решения контейнеризации.

Когда-то использовал Docker для разворачивания отдельного приложения из образа и были некоторые проблемы с монтированием папок в него (может быть вообще не так нужно было делать), хотел сделать общую директорию для хоста и гостя, в итоге наткнулся на огромнейшее количество костылей для этого и остального.

Сейчас создал контейнер в LXD и мне это очень понравилось, всё стало буквально из коробки, для непривелигилированого контейнера просто добавил юзера в группу lxd.

Я понимаю что Docker более ориентирован на контейниризацию приложений, но всё же хотелось сравнить с контейниризацией ОС.

Поскольку Docker переехал на свои рельсы, я так понимаю, ради кроссплатформенности, то в чём плюсы и минусы Docker и LXD на данный момент. В интернете все нахваливают Docker, но я не пойму за что, ведь на мой дилетантский взгляд, LXD ничем не уступает.

UPD: Если туплю, то не сильно сердитесь. Пятница же!

Artamudo
()

Как понять, отчего программа тормозит?

 

Иногда у меня сильно тормозят некоторые программы (chrome/chromium, файловые менеджеры на разных тулкитах и даже gvim иногда). Иногда я подключаюсь к программе при помощи strace и пытаюсь понять, в чём причина тормозов. Как правило, безуспешно — мне не хватает базовых знаний (я не программист).

Вопрос: что (кроме man strace) нужно знать для поиска тормозов ПО?

Можете накидать годных ссылок на описание процесса решения проблем при помощи strace (и другого ПО)?

Harliff
()

Что необходимо изменить в настройках SoftEther VPN Server, чтобы он так сильно не нагружал CPU?

 , , , ,

Подскажите, пожалуйста, что необходимо изменить в настройках SoftEther VPN Server, чтобы он так сильно не нагружал ЦП?

Имеется SoftEther VPN Server настроен на Local Bridge (VPS ОС Debian GNU/Linux 9.7). SecureNAT выключен. Шифрование и сжатие тоже выключено (это отображено в админке сервера в свойствах сессии клиента). В качестве сервера DHCP выступает dnsmasq. Все настроено, примерно, как описано здесь:
https://hd.zp.ua/ustanovka-softether-na-ubuntu-ili-debian/

К SoftEther VPN Server подключен MikroTik как L2TP клиент, как описано здесь, но без IPsec:
https://hd.zp.ua/puskaem-trafik-s-mikrotik-cherez-softether/

Через этот VPN подключено 20 IP камер общим трафиком в 30 Мегабит/сек, по схеме:

Запрос (команды):

player --> eth0 --> tap_soft --> MikroTik --> IPcam

Ответ (видео):

IPcam --> MikroTik --> tap_soft --> eth0 --> player

При этом 2 ядра Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz в сумме нагружены на 65% (ядро №1 ~ 20% и ядро №2 ~ 45%) процессом vpnserver.

Никаких сервисов, кроме тех, которые связаны с SoftEther VPN, на VPS нет.

Очень нужна Ваша помощь в этом вопросе.

Заранее спасибо.

pospelov
()

Слушайте, это какой-то маргинальный способ установки линукса? Большинство пользуется инсталлятором?

 , ,

Сабж

1. Создаём на диске таблицу разделов GPT

2. Создаём FAT32-раздел на пару сотен мегабайт

3. Скачиваем из интернета любой UEFI-загрузчик (нам нужен сам загрузчик, это один бинарный файл!)

4. Переименовываем и кладем этот файл на созданный раздел по адресу /EFI/Boot/bootx64.efi

5. Создаём текстовый конфиг, кладем его там, где загрузчик ожидает его увидеть (настройка и местоположение конфига зависят от конкретной реализации загрузчика, эта информация доступна в интернете)

6. После перезагрузки видим меню загрузчика (Если на диске установлена Windows 8 или 10 — с большой вероятностью это руководство сокращается до пунктов 3 — 5.)

Есть ли у данного способа хоть какие-то преимущества, или это тупиковый путь развития? Последний раз ставил Линукс 4 года назад, на mbr (и все 4 года Линукс исправно работал без переустановки).

tiinn
()

Что должен уметь делать администратор postgres?

 

Привет.

Занимаюсь изучением Postgres. Можете написать список типичных задач, которые должен уметь выполнять администратор баз данных postgres?

Типа этого:

  • Снимать дампы
  • Разворачивать дампы
  • Создавать пользователей
  • Редактировать pg_hba.conf и т.д.

Спасибо!

iljuase
()

Запретить процессу использовать swap

 

Есть ли какой-то действенный способ запретить некоторому процессу использовать swap? Т е сделать так, что бы он никогда не вытеснялся из озу на диск?

Serbis
()

Программеры есть? А можете на халяву реализовать небольшой проект? Думаю можно даже на скриптовом языке. Идея: «Дерево дырок»

 , ,

Идея: Компактный индекс съёмного носителя.
Реализация: Делать дырявую копию дерева каталогов/файлов - сохраняя владельцев/время/права доступа. Затем делать .sq из этого дерева и при желании иметь возможность подмонтировать и посмотреть это дерево.
В течение 25+ лет работы ИТшником - набралось масса барахла на съёмных носителях. Есть куча флешек, куча винтов... Надо это как то индексировать.

Изначально спрашивал в Админ форуме. Думал это уже реализовано - но никто не подсказал пруфлинков. Лишь некий driano32 в Ветке: Создать ISO со служебной информацией из дерева каталогов. Чем? дал простейший скрипт генерящий дерево дырок. Но работает оно очень долго....
Мог бы кто то реализовать эту идею в одной программе на скриптовом языке? У меня в экспериментах это стало выглядеть
tree-hole.sh:

#!/bin/sh
#Упаковка Фантома каталога
timestamp=`date +%y%m%d-%H%M%S`
echo $timestamp
if [ "$1" = "" ]; then
echo "Запускать надо так: $0 <Каталог> <Архив/дырка>"
else
echo "Аргументы = $1 $2"
fi

DIR_PREFIX="/opt/pub/_T3T/Data/tree-$2"
SOURCE=$1
TARGET=$2
CUR_DIR=`pwd`
if [ -d "$DIR_PREFIX" ]; then
    echo $DIR_PREFIX" is already created, skipping."
  else
    mkdir "$DIR_PREFIX"
    chmod -fR 755 "$DIR_PREFIX"
fi
echo '#/bin/sh' > "$DIR_PREFIX/mod_script"
echo 'DIR_PREFIX='$DIR_PREFIX >> "$DIR_PREFIX/mod_script"
echo 'if [ -f "$1" ]; then' >> "$DIR_PREFIX/mod_script"
echo '  attrib=`stat -c %a -- "$1"`' >> "$DIR_PREFIX/mod_script"
echo '  owner=`stat -c %U -- "$1"`' >> "$DIR_PREFIX/mod_script"
echo '  group=`stat -c %G -- "$1"`' >> "$DIR_PREFIX/mod_script"
echo '  size=`stat -c %s -- "$1"`' >> "$DIR_PREFIX/mod_script"
echo 'dd if=/dev/null of="$DIR_PREFIX/$1" bs=1 seek=$size && chown $owner:$group -- "$DIR_PREFIX/$1" && chmod $attrib -- "$DIR_PREFIX/$1"' >> "$DIR_PREFIX/mod_script"
echo 'fi' >> "$DIR_PREFIX/mod_script"
find $SOURCE -type d -exec mkdir "$DIR_PREFIX"/"{}" \;
find $SOURCE -type f -exec sh "$DIR_PREFIX/mod_script" "{}" \;
rm -f $DIR_PREFIX/mod_script
#genisoimage -allow-leading-dots -allow-lowercase -allow-multidot -iso-level 4 -l -o `date +%s`.iso "$DIR_PREFIX"
echo Start: $timestamp|tee -a $2.time
timemid=`date +%y%m%d-%H%M%S`
echo Mid: $timemid|tee -a $2.time
mksquashfs "$DIR_PREFIX/$1" $2.sq
timeend=`date +%y%m%d-%H%M%S`.
echo End: $timeend|tee -a $2.time
###Fucking Sheet rm -rf $DIR_PREFIX


Небольшой каталог в 32Gb оно за 6 минут ужимает в 69килобайтный .sq,а вот 1.7Тб каталог крутит со вчерашнего вечера...

Может кто поддержит и реализует эту идею? Тогда у общественности появится механизм индексации носителей

Этот механизм можно потом и развить - скажем добавляя в дерево md5 суммы файлов исходного каталога и получить механизм верификации изменений в ФС. Можно так и хранить долгоживущую дырку и инкрементально апдейтить хэши в ней.

Вот как то так...

P.S. Пробовал разные каталогизаторы (не помню всех имён), но ни один из них (даже cdcat из официального Debian репозитария) не смог переварить дерево 1.7Тб и кажется даже дерево 500Гб.
Просто работал, работал, работал и вдруг умирал...

n0mad
()

Зачем при SSL-рукопожатии передаётся имя моего компа?

 , ,

Смотрел что передаётся по сети при помощи Wireshark. Всякая фигня передаётся. Понятно что зашифровано всё. Но перед началом шифрованной передачи данных с каким-нибудь HTTPS-сайтом, мой браузер соединяется с root-servers.net и verisign-grs.com. А также передаёт имя моего хоста 0_o

Зачем? Вот просто зачем? Какая ему разница? Я так понимаю, в винде имя хоста всегда дефолтное, и никто его не меняет (и это не мешает отличать одного виндоюзера от другого). А в линуксе мы пишем что-то вроде «вася-ПК», и это всегда передаётся, чем делает наши запросы уникальными. Чем это лучше телеметрии? Последняя хотя бы обезличенная (якобы)

Блин, не удивлюсь если SSL-сервер ещё и серийник материнки просит

ZenitharChampion
()

Научите запускать процессы в фоне

 , ,

Я почитал в гугле про nohup, screen, & и всякое-разное, но так и не понял, как делать правильно/кошерно. Суть задачи: подключаюсь по ssh, иду в одну папку, делаю npm run start, например, процесс запускается, консоль остаётся свободной, иду в другую папку, делаю что-то подобное, иду в третью, ну вы понели. Процессы на фоне шуршат, и к консоли не привязаны. Ну ещё бы здорово было бы, чтобы я потом мог эти процессы различить/прибить не только по pid. Как это делать?

beaver
()

Android - быстрые offline карты без мусора?

 ,

Желательно openstreetmap, что пробовал:

maps.me - давным давно была адекватная версия, которая стояла на старом телефоне и померла вместе с ним, даже на 4pda ее откопать не удалось, новые версии посточнно орут: «вруби gps, вруби gps с***».

yandex.maps - нет, просто нет. Они кончено быстрые и могут в offline, но откровенно перегружены лишним барохлом.

osmand - тормоз, просто тормоз.

Deleted
()