запуск процесса как потомка указанного PID
Здравствуйте!
Подскажите, как указать запускаемому процессу, что он должен быть потомком того PID, который указан? Это вроде форком называется.
Здравствуйте!
Подскажите, как указать запускаемому процессу, что он должен быть потомком того PID, который указан? Это вроде форком называется.
Добрый день!
Возможно я туплю, но не нашел решения. Итак, есть терминал /dev/pts/0
в котором запущен bash
:
[rav@nixos:~]$ sudo lsof /dev/pts/0
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
.konsole- 4572 rav 19u CHR 136,0 0t0 3 /dev/pts/0
bash 4582 rav 0u CHR 136,0 0t0 3 /dev/pts/0
...
top 22527 rav 0u CHR 136,0 0t0 3 /dev/pts/0
...
в дереве процессов pstree
все выгдялит логично:
| | |-+- 04572 rav /etc/profiles/per-user/rav/bin/konsole
| | | |-+= 04582 rav /run/current-system/sw/bin/bash
| | | | \--= 22527 rav top
в это время в терминал /dev/pts/0
приходит программа pinentry
и предлагает свое диалоговое окно пользователю:
[nix-shell:~]$ sudo lsof /dev/pts/0
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
.konsole- 4572 rav 19u CHR 136,0 0t0 3 /dev/pts/0
...
bash 4582 rav 255u CHR 136,0 0t0 3 /dev/pts/0
...
top 22527 rav 3u CHR 136,0 0t0 3 /dev/pts/0
.pinentry 22992 rav 10r CHR 136,0 0t0 3 /dev/pts/0
...
но она не является потомком запущеного там bash
:
| |-+= 01874 rav /nix/store/h7qn6nl04qplrsnqlgwxp72rsg4cil9r-gnupg-2.4.5/bin/gpg-agent --supervised
| | |--- 22992 rav pinentry
| | \--- 22843 rav scdaemon --multi-server
отсюда наблюдается интересная картина, когда устройством терминала /dev/pts/0
пытаются пользоваться 2 ничего не знающие друг о друге программы. И часть вводимых с клавиатуры символов рандомно попадают то в одну, то в другую. Вопрос, как сделать так, что бы весь ввод попадал в pinentry
Здравствуйте!
Подскажите какие есть варианты использования ноутбука в качестве переферийного оборудования для другого ПК?
Пример из жизни, купил миник для маршрутизатора, для него надо клавиатуру, мышь, монитор для начальной настройки. Но при этом есть ноутбук, где все это есть. Вопрос как их подружить? Если в качестве монитора можно использовать устройство видеозахвата, то с остальной переферией проблемы. Есть устройство aten CV211, а что есть ещё?
Здравствуйте.
Подскажите, как из под root
получить переменную окружения пользователя?
Немного контекста.
Есть сервис VPN, который при запуске, для аутентификации(логин, пароль, отп) ходит в пользователельское хранилище паролей(pass) и получает необходимые данные. Для расшифрования паролей используется gpg-агент
, который хранит ключи в памяти некоторое время, после которого он их забывает. Для обновления ключей используется программа pinentry
, но ей для вызова диалогового окна нужна переменная окружения XAUTHORITY
. Собственно остюда и вопрос, как метнуться от имени сервиса к пользователю и получить эту переменную окружения?
Обновление ключа не работает:
su rav -c 'gpg --homedir ~rav/.gnupg/ --decrypt ~rav/.password-store/LDAP.gpg 2>/dev/null'
Обновление ключа работает:
su rav -c 'XAUTHORITY=/tmp/xauth_zjilik gpg --homedir ~rav/.gnupg/ --decrypt ~rav/.password-store/LDAP.gpg 2>/dev/null'
Подскажите, есть возможность изолировать сети на уровне пользователей linux?
Напримет мне по работе надо подключаться к разным VPN, при этом надо запускать некоторые автоматически при входе. Но жене эти VPN не нужны, да и нечего ей там делать. Как сделать так, что бы при входе моим пользователем они запускались и к ним не было доступа другим пользователям?
Здравствуйте.
Есть системный(systemctl) сервис OpenVPN
, который при запуске запрашивает login
, password
, otp
. Для хранения этих данных был выбран менеджер паролей pass
, который запускается в пользовательском(systemctl –user) окружении.
Для передачи этих данных в сервис OpenVPN
был написан простой скрипт, который реализует эту логику для пользователя.
Я хочу дальше автоматизировать процесс и засунуть скрипт в сервис systemctl --user
, потом прикрутить к этому отслеживание запроса пароля через inotify интерфейс systemd. Проблема в том что скрипт использует внутри sudo socat
для записи ответов в сокет, что приводит к ошибке:
янв 07 21:25:01 nixos systemd[1954]: Starting Run when /run/systemd/ask-password/ask* file...
янв 07 21:25:01 nixos sh[30678]: Enter Auth Username:
янв 07 21:25:01 nixos sh[30678]: /run/systemd/ask-password/sck.ff39e0ee07bdce4c
янв 07 21:25:01 nixos sh[30688]: /home/rav/auth.sh: строка 13: echo: ошибка записи: Broken pipe
янв 07 21:25:01 nixos systemd[1954]: ask-password.service: Main process exited, code=exited, status=1/FAILURE
янв 07 21:25:01 nixos systemd[1954]: ask-password.service: Failed with result 'exit-code'.
янв 07 21:25:01 nixos systemd[1954]: Failed to start Run when /run/systemd/ask-password/ask* file.
а если отказаться от sudo
то соответственно к ошибке:
янв 07 16:58:38 nixos systemd[1963]: Starting Run when /run/systemd/ask-password/ask* file...
янв 07 16:58:38 nixos sh[4554]: Enter Auth Username:
янв 07 16:58:38 nixos sh[4554]: /run/systemd/ask-password/sck.e54bbba053f04fee
янв 07 16:58:38 nixos sh[4564]: 2024/01/07 16:58:38 socat[4564] E sendto(5, 0x556fd758e000, 11, 0, AF=1 "/run/systemd/ask-password/sck.e54bbba053f04fee", 48): Permission denied
янв 07 16:58:38 nixos systemd[1963]: ask-password.service: Main process exited, code=exited, status=1/FAILURE
янв 07 16:58:38 nixos systemd[1963]: ask-password.service: Failed with result 'exit-code'.
янв 07 16:58:38 nixos systemd[1963]: Failed to start Run when /run/systemd/ask-password/ask* file.
Отсюда вопрос, как в systemd --user
использовать скрипры с sudo
?
Всем привет!
Кто сталкивался с проблемой жора батареи в ждучем режиме ноутбука? Настраивал suspend, s2idle, hibernate и столкнулся с тем что ноут за ночь в s2idle теряет ~30% заряда. Кто с этим сталкивался, как лечится?
rav@rav-laptop ~ [19:57]: cat /sys/power/mem_sleep
[s2idle] deep
Закрытие крышки ноутбука(dmesg):
[ 176.036201] wlp0s20f3: deauthenticating from cc:2d:e0:78:ef:4b by local choice (Reason: 3=DEAUTH_LEAVING)
[ 176.382800] PM: suspend entry (s2idle)
[ 176.409147] Filesystems sync: 0.026 seconds
[ 176.409284] (NULL device *): firmware: direct-loading firmware i915/adlp_dmc_ver2_16.bin
[ 176.409393] (NULL device *): firmware: direct-loading firmware i915/adlp_guc_70.bin
[ 176.409425] (NULL device *): firmware: direct-loading firmware i915/tgl_huc.bin
[ 176.409444] (NULL device *): firmware: direct-loading firmware regulatory.db.p7s
[ 176.409445] (NULL device *): firmware: direct-loading firmware iwlwifi-so-a0-gf-a0.pnvm
[ 176.409461] (NULL device *): firmware: direct-loading firmware intel/ibt-0040-0041.ddc
[ 176.409463] (NULL device *): firmware: direct-loading firmware regulatory.db
[ 176.409581] (NULL device *): firmware: direct-loading firmware intel/ibt-0040-0041.sfi
[ 176.409655] (NULL device *): firmware: direct-loading firmware iwlwifi-so-a0-gf-a0-72.ucode
[ 176.527925] Freezing user space processes
[ 176.529533] Freezing user space processes completed (elapsed 0.001 seconds)
[ 176.529536] OOM killer disabled.
[ 176.529537] Freezing remaining freezable tasks
[ 176.530766] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
[ 176.530768] printk: Suspending console(s) (use no_console_suspend to debug)
[ 177.034315] ------------[ cut here ]------------
[ 177.034322] i915 0000:00:02.0: i915 raw-wakerefs=1 wakelocks=1 on cleanup
[ 177.034469] WARNING: CPU: 2 PID: 6165 at drivers/gpu/drm/i915/intel_runtime_pm.c:638 intel_runtime_pm_driver_release+0x5d/0x70 [i915]
[ 177.034746] Modules linked in: cpufreq_powersave ctr ccm rfcomm cmac algif_hash algif_skcipher af_alg bridge stp llc overlay bnep btusb btrtl btbcm btintel btmtk bluetooth uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common jitterentropy_rng videodev mc drbg ansi_cprng ecdh_generic ecc crc16 openvswitch nsh nf_conncount qrtr nft_chain_nat xt_MASQUERADE nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nft_compat nf_tables nfnetlink binfmt_misc nls_ascii nls_cp437 vfat fat mei_hdcp snd_sof_pci_intel_tgl pmt_telemetry pmt_class intel_rapl_msr snd_sof_intel_hda_common x86_pkg_temp_thermal soundwire_intel intel_powerclamp soundwire_generic_allocation coretemp soundwire_cadence snd_sof_intel_hda snd_sof_pci snd_sof_xtensa_dsp kvm_intel snd_sof snd_sof_utils snd_soc_hdac_hda snd_hda_codec_realtek iwlmvm kvm snd_hda_codec_generic snd_hda_ext_core ledtrig_audio snd_soc_acpi_intel_match ghash_clmulni_intel mac80211 sha512_ssse3 snd_soc_acpi sha512_generic snd_soc_core
[ 177.034893] sha256_ssse3 sha1_ssse3 snd_hda_codec_hdmi snd_compress joydev soundwire_bus libarc4 snd_hda_intel snd_intel_dspcfg snd_intel_sdw_acpi aesni_intel iwlwifi snd_hda_codec crypto_simd cryptd snd_hda_core nvidia_wmi_ec_backlight rapl vfio_pci intel_cstate snd_hwdep vfio_pci_core ideapad_laptop iTCO_wdt platform_profile cfg80211 snd_pcm sparse_keymap vfio_virqfd intel_uncore pcspkr intel_pmc_bxt irqbypass mei_me snd_timer iTCO_vendor_support ucsi_acpi wmi_bmof processor_thermal_device_pci watchdog snd typec_ucsi mei processor_thermal_device roles processor_thermal_rfim soundcore processor_thermal_mbox typec processor_thermal_rapl intel_rapl_common igen6_edac intel_vsec int3403_thermal rfkill int340x_thermal_zone int3400_thermal intel_pmc_core acpi_thermal_rel acpi_pad acpi_tad hid_multitouch ac serio_raw evdev nfsd msr auth_rpcgss parport_pc nfs_acl ppdev lockd lp grace sunrpc parport fuse dm_mod loop configfs efi_pstore ip_tables x_tables autofs4 btrfs blake2b_generic
[ 177.035034] zstd_compress efivarfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c crc32c_generic raid1 raid0 multipath linear md_mod vfio_iommu_type1 vfio usbhid nvme nvme_core t10_pi crc64_rocksoft crc64 crc_t10dif hid_generic crct10dif_generic i915 drm_buddy i2c_algo_bit drm_display_helper cec rc_core xhci_pci ttm xhci_hcd r8169 drm_kms_helper i2c_hid_acpi video realtek intel_lpss_pci i2c_i801 i2c_hid mdio_devres crct10dif_pclmul drm thunderbolt usbcore crct10dif_common crc32_pclmul crc32c_intel libphy intel_lpss i2c_smbus vmd idma64 usb_common hid battery wmi button
[ 177.035148] CPU: 2 PID: 6165 Comm: kworker/u40:20 Tainted: G W 6.1.0-16-amd64 #1 Debian 6.1.67-1
[ 177.035160] Hardware name: LENOVO 82RF/LNVNB161216, BIOS J2CN56WW 09/18/2023
[ 177.035166] Workqueue: events_unbound async_run_entry_fn
[ 177.035183] RIP: 0010:intel_runtime_pm_driver_release+0x5d/0x70 [i915]
[ 177.035415] Code: fc 10 48 8b 5f 50 48 85 db 75 03 48 8b 1f e8 2a c8 3a ee 45 89 e0 89 e9 48 89 da 48 89 c6 48 c7 c7 e0 49 ad c0 e8 f3 bf d6 ed <0f> 0b 5b 5d 41 5c c3 cc cc cc cc 0f 1f 84 00 00 00 00 00 0f 1f 44
[ 177.035423] RSP: 0018:ffffa8b388513da8 EFLAGS: 00010286
[ 177.035431] RAX: 0000000000000000 RBX: ffff9900c24e6bb0 RCX: 0000000000000027
[ 177.035437] RDX: ffff99102f6a03a8 RSI: 0000000000000001 RDI: ffff99102f6a03a0
[ 177.035442] RBP: 0000000000000001 R08: ffffffffb1579a20 R09: 0000000000000000
[ 177.035445] R10: ffffffffffffffff R11: ffff99106fb939ca R12: 0000000000000001
[ 177.035449] R13: ffff9900e334a328 R14: 0000000000000000 R15: ffff9900e334b7a8
[ 177.035453] FS: 0000000000000000(0000) GS:ffff99102f680000(0000) knlGS:0000000000000000
[ 177.035459] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 177.035465] CR2: 00007fe831dd2000 CR3: 000000092b810000 CR4: 0000000000750ee0
[ 177.035472] PKRU: 55555554
[ 177.035475] Call Trace:
[ 177.035483] <TASK>
[ 177.035491] ? __warn+0x7d/0xc0
[ 177.035501] ? intel_runtime_pm_driver_release+0x5d/0x70 [i915]
[ 177.035729] ? report_bug+0xe2/0x150
[ 177.035745] ? handle_bug+0x41/0x70
[ 177.035762] ? exc_invalid_op+0x13/0x60
[ 177.035776] ? asm_exc_invalid_op+0x16/0x20
[ 177.035795] ? intel_runtime_pm_driver_release+0x5d/0x70 [i915]
[ 177.036012] ? intel_runtime_pm_driver_release+0x5d/0x70 [i915]
[ 177.036296] i915_drm_suspend_late+0x115/0x140 [i915]
[ 177.036463] ? pci_pm_poweroff_late+0x40/0x40
[ 177.036479] dpm_run_callback+0x47/0x150
[ 177.036494] __device_suspend_late+0x94/0x1c0
[ 177.036506] async_suspend_late+0x1a/0x80
[ 177.036516] async_run_entry_fn+0x2d/0x130
[ 177.036525] process_one_work+0x1c4/0x380
[ 177.036540] worker_thread+0x4d/0x380
[ 177.036552] ? rescuer_thread+0x3a0/0x3a0
[ 177.036563] kthread+0xd7/0x100
[ 177.036572] ? kthread_complete_and_exit+0x20/0x20
[ 177.036581] ret_from_fork+0x1f/0x30
[ 177.036598] </TASK>
[ 177.036600] ---[ end trace 0000000000000000 ]---
[ 177.045220] ACPI: EC: interrupt blocked
Открытие крышки ноутбука(dmesg):
[ 197.802485] ACPI: EC: interrupt unblocked
[ 198.325528] i915 0000:00:02.0: [drm] GuC firmware i915/adlp_guc_70.bin version 70.5.1
[ 198.325531] i915 0000:00:02.0: [drm] HuC firmware i915/tgl_huc.bin version 7.9.3
[ 198.325671] pcieport 10000:e0:06.0: can't derive routing for PCI INT A
[ 198.325672] nvme 10000:e1:00.0: PCI INT A: no GSI
[ 198.325675] pcieport 10000:e0:06.2: can't derive routing for PCI INT A
[ 198.325677] nvme 10000:e2:00.0: PCI INT A: no GSI
[ 198.338180] nvme nvme1: 18/0/0 default/read/poll queues
[ 198.342418] nvme nvme0: Shutdown timeout set to 8 seconds
[ 198.343279] i915 0000:00:02.0: [drm] HuC authenticated
[ 198.343721] i915 0000:00:02.0: [drm] GuC submission enabled
[ 198.343723] i915 0000:00:02.0: [drm] GuC SLPC enabled
[ 198.344235] i915 0000:00:02.0: [drm] GuC RC: enabled
[ 198.403381] nvme nvme0: 12/0/0 default/read/poll queues
[ 198.789318] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_component_ops [i915])
[ 198.790106] OOM killer enabled.
[ 198.790109] Restarting tasks ... done.
[ 198.793964] random: crng reseeded on system resumption
[ 198.912197] PM: suspend exit
[ 198.943385] Generic FE-GE Realtek PHY r8169-0-3200:00: attached PHY driver (mii_bus:phy_addr=r8169-0-3200:00, irq=MAC)
[ 199.151441] r8169 0000:32:00.0 enp50s0: Link is Down
[ 202.912155] wlp0s20f3: authenticate with cc:2d:e0:78:ef:4b
[ 202.918881] wlp0s20f3: send auth to cc:2d:e0:78:ef:4b (try 1/3)
[ 202.949521] wlp0s20f3: authenticated
[ 202.951186] wlp0s20f3: associate with cc:2d:e0:78:ef:4b (try 1/3)
[ 202.953937] wlp0s20f3: RX AssocResp from cc:2d:e0:78:ef:4b (capab=0x431 status=0 aid=3)
[ 202.963795] wlp0s20f3: associated
[ 203.023913] IPv6: ADDRCONF(NETDEV_CHANGE): wlp0s20f3: link becomes ready
Всем привет!
Есть некий сервис, который по своей внутренней логике занимает на хосте рандомный порт из диапазона 10000-20000.
Подскажите, есть возможность мониторить в какое время этот сервиз занял и в какое время отпустил этот порт?
Здравствуйте.
Подскажите как подключить docker контейнер к существующему openvswich.
Появилось желание поиграться с docker и перевести часть сетевых и сервисов в контейнеры, но беглый поиск ничего не дал. Везде написано как создать сеть docker, а как использовать существующую инфраструктуру нет. Начать решил с dhcp сервера.
Здравствуйте.
Завел виртуалку win10, пробросил туда видеокарту intel gvt-g, начал настраивать клиента looking-glass, подключился к гостю но в нем не работает ни клавиатура ни мышь. Кто нибудь с таким сталкивался?
Всем привет.
Кто знает, как на алике оплачивать в $, а не в руб.?
Здравствуйте.
С недавнего времени начал интересоваться виртуализацией и в частности захотелось сделать из одной из ВМ маршрутизатор. Мой подход был простой, сетевой адаптер с интернетом от провайдера входит в виртуальный коммутатор на OpenVSwitch, к коммутатору подключается ВМ(маршрутизатор), который в свою очередь забирает интернет от провайдера и раздает его дальше в сеть. Гладко было на бумаге, но…, при попытке использования по прямому назначению выяснилось что сеть этой ВМ съедает и без того слабый процессор целикоком и при этом даже не выдает скоростей старого, еще более слабого mikrotik’а
Вопрос заключается в том, как добиться желаемого результата, без того что бы положить на это все ресурсы?
Для виртуализации использую KVM/qemu/libvirt
Перемещено leave из talks
Здравствуйте.
Подскажите, имеется ли возможность транслировать содержимое torrent файла по протоколу dlna?
Сейчас для просмотра фильмов, сериалов и т.п. использую minidlna, иногда более ресурсоёмкие Jellyfin и Emby, с локальным хранилищем. И вот задумался о необходимости скачивания контента, если теоретически его можно тянуть прямо из интернета. Такой подход только мне одному сэкономит несколько терабайт дискового пространства. А в пределах торрент сети, даже страшно подумать… И если сейчас у меня в хранилище контент в 720, 1080 то, если такая возможность имеется, можно будет задуматься уже о 4k, а то и 8k, без уменьшения медиатеки.
Здравствуйте.
Выхожу в интернет с одного из устройств через мобильный интернет, для подключения использую networkd со следующими настройками 20_wifi.network
:
[Match]
Name=wls7
[Network]
DHCP=yes
[DHCP]
UseDomains=true
Сейчас для подключения к Wireguard пользуюсь командой wg-quick up wg0
wg0.conf
:
[Interface]
Address=192.168.1.2/32
PrivateKey=PRIVATE_KEY
DNS=192.168.0.4
[Peer]
PublicKey=PUBLIC_KEY
Endpoint=xxx.xxx.xxx.xxx:51820
AllowedIPs=0.0.0.0/0, 128.0.0.0/1
PersistentKeepAlive = 25
Хочу отдать это дело на контроль systemd-networkd(через его встроенные механизмы). Пытался настраивать по ArchWiki, но почему то нет маршрутизации, пингуется сервер Wireguard, а хосты за сервером не пингуются. При этом если пользоваться wg_quick
то все доступно. Настройки networkd следующие:
99-wg0.netdev
:
[NetDev]
Name=wg0
Kind=wireguard
Description=WireGuard tunnel wg0
[WireGuard]
PrivateKey=PRIVATE_KEY
ListenPort=51820
[WireGuardPeer]
PublicKey=PUBLIC_KEY
AllowedIPs=0.0.0.0/0
AllowedIPs=::/0
Endpoint=xxx.xxx.xxx.xxx:51820
99-wg0.network
:
[Match]
Name=wg0
[Network]
Address=192.168.1.2/32
[Route]
Gateway=192.168.1.1
Destination = 192.168.1.0/24
GatewayOnlink=true
Здравствуйте.
Провайдер динамически выдает префикс ipv6 /64 (~18 квадриллионов адресов). Возник вопрос, как эти адреса распределять без SLAAC? т.е. надо как то передать динамически получаемый префикс на другие DHCP сервера и при этом как то поделить диапазоны ip между ними.
Как это делается?
Hi всем.
Заинтересовался вопросом сбора данных по себе…
Жил, жил, женился, родились дети, жена в декрете 3й год и вдруг, неожиданно после этих событий, задумался о том что денег стало не хватать на, в моём понимании, хорошо. После осознания того что заниматься бегами в другие страны/регионы, я не хочу, пришла в голову мысль оптимизации затрат…
Собственно мысль простая, собирать данные о тратах, например за год, или лет 5 последних(да СССР). Собственно, кто как ведёт свой бюджет? Как собираете статистику по тратам? Может есть возможность сканирования чеков и сбора данных в свою БД? Ведь сейчас вроде можно сканировать QR и получить обработанные данные…
Здравствуйте.
Подскажите, можно ли в этом файле использовать DNS имена? Например опция Gateway? Это актуально, если Gateway получает адрес по DHCP.
Здравствуйте.
Подскажите, по настройке сабжа. Данный сервер не запускается, если предварительно не настроить интерфейс на котором он запущен. А можно как то его настроить так, что бы он сам этот интерфейс настраивал?
Всем привет.
Подскажите, где можно найти список событий в IT мире? Таких как MWC или computex.
Здравствуйте.
Подскажите чем пользоваться что бы экран виртуалки не превращался в пошаговую стратегию.
Предистория. Начал осваивать виртуализацию kvm, пробросил в виртуалку видеокарту(intel gvt), но все попытки поиграть превращаются в пошаговую стратегию. Пробовал vnc и nomachine.
следующие → |