LINUX.ORG.RU

146
Всего сообщений: 1614

Медленное выполнение скрипта при запуске через Cron

Добрый день! Есть скрипт, задача которого взять текстовый «файл 1», каждую его строку обрезать под совпадение по регулярному выражению и результат добавить в «файл 2». Если скрипт запускать руками, то он выполняется секунд 20-30. Если процесс запускается через cron или systemd, то время выполнения скрипта растягивается до 10 минут. С правами все хорошо, когда скрипт запускается через cron или systemd, то «файл 2» создается, но его размер набегает крайне медленно. Не могу понять почему. Подскажите, куда хотя бы покопать для анализа такой «фишки»?

 , ,

kes83 ()

[Решено] Уведомления с ЛОРа - rss2email

Хочу настроить уведомления с ЛОРа по email. Для этого

apt install rss2email
r2e new user@example.com
r2e add LOR 'https://www.linux.org.ru/show-replies.jsp?output=rss&nick=damix9'
r2e run --no-send
Поправил ~/.config/rss2email.cfg соответствующим образом.

Создал такие файлы

$ cat /etc/systemd/system/lornotify.service 
[Unit]
Description=LOR email notifications

[Service]
Type=oneshot
ExecStart=/usr/bin/r2e run

$ cat /etc/systemd/system/lornotify.timer 
[Unit]
Description=Linux.org.ru email notifications

[Timer]
# Run after booting
OnBootSec=10min
# Run every one hour
OnUnitActiveSec=1h

[Install]
WantedBy=timers.target
systemctl start lornotify.timer
r2e run
присылает письма с уведомлениями, пришедшими с последнего запуска этой команды, но автоматически по таймеру письма не приходят.
~$  inxi -S
System:    Host: ryzen Kernel: 5.4.44-damix x86_64 bits: 64 Desktop: KDE Plasma 5.12.6
           Distro: Ubuntu 18.04.1 LTS

 , , ,

damix9 ()

вышел systemd 246

Собственно сабж. Новый релиз «базовой системы» Linux. Опять попытка объять необъятное и большущий changelog, который админы systemd должны выучить. Опять несовместимые изменения, которые «должны быть автоматически сконвертированы»

«StandardError= and StandardOutput= in unit files no longer support the „syslog“ and „syslog-console“ switches.»

Ес-но, use case, где используется центральное управление конфигами не учитывается. То есть, как обычно, Поттеринг как бы обо всем позаботился, но на самом деле в каждом релизе что-нибудь ломают. Я вообще не помню, чтобы раньше init за меня переписывал конфиги.

changelog: https://raw.githubusercontent.com/systemd/systemd/master/NEWS

opennet: https://www.opennet.ru/opennews/art.shtml?num=53468

 

crypt ()

Как выключить систему

Собрал я образ для загрузки по сети.

Образ по размеру больше чем RAM в ПК, поэтому я гружу его в zram и мне нормально.

Но выключить/перезагрузить ПК теперь нормально нельзя.

Посылаю poweroff и на этапе отключения zram получаю out of memmory и на этом выключение останавливается.

PS Знаю про echo b > /proc/sysrq-trigger

Интересуют способы заставить нормально отрабатывать комманды reboot и poweroff и то, что вызывается когда пользователь выключает ПК из интерфейса

PS2 Система manjaro, systemd

PS3 А вот так выглядят free -h, zramctl, df -h сразу после загрузки

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

 , , , ,

Flotsky ()

Правильный запуск Tomcat

Хочу немного походить по граблям и использовать Tomcat из штатной поставки ОС, а не таскать с собой бинарники.

Установил пакет tomcat9, добавился в /etc/tomcat9/tomcat-users.xml, ткнул service start tomcat9 - вроде работает, демка запускается, веб-панелька, статистика, в общем, всё в шоколаде.

Начинаю привязывать сервер к IDE - нифига, канонiчный /usr/share/tomcat9/bin/startup.sh запускает сервер в каком-то полуобморочном режиме, стандартные приложения не грузятся, логи не работают, куча ругани в терминале. В то же время, средствами ОС оно запускается нормально.

И теперь вопрос - как посмотреть, каким образом запустить сабж правильно? В /etc/systemd/system/ ничего похожего на tomcat нет, в /etc/init.d/ только tomcat8.

 , ,

izzholtik ()

Debian 10.3, как заменить systemd на sysv?

по этому руководству не работает

https://linuxconfig.org/how-to-replace-systemd-with-sysv-init-on-debian-linux

root@debian:/home/grovekeeper/Downloads# wget https://devuan.org/os/keyring/repository@devuan.org.asc
--2020-07-28 18:30:03--  https://devuan.org/os/keyring/repository@devuan.org.asc
Resolving devuan.org (devuan.org)... 54.36.142.179, 2001:41d0:2:1f68::3624:8eb3
Connecting to devuan.org (devuan.org)|54.36.142.179|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2020-07-28 18:30:03 ERROR 404: Not Found.

root@debian:/home/grovekeeper/Downloads# 

к тому же там ни слова что делать с grub после установки sysv

 , ,

grovekeeper ()

Программно забрать у systemd состояние lldp neighbours

Мы делаем прошивку и хочется у systemd забирать состояние портов и показывать, что в них воткнуто.

Я нашел только способ:

т.е. пойти и запросить эти данные, запустив команду.

К сожалению json формата не завезли.

Ещё в /run/systemd/netif/lldp можно увидеть файл с названием в виде числа. Номер растет и кажется отвечает за версию состояния.

Вопрос: как правильно забирать этот список? Дергать программу не хочется, потому что парсить её вывод достаточно нестабильно и туда любит просачиваться дополнительный вывод, который разрушит структуру ответа.

Файл на диске можно мониторить через inotify, но у них неизвестная структура.

Как правильно?

 ,

max_lapshin ()

Как настроить systemd-oomd на убийство firefox ?

Хочется, чтобы вместо зависания умирал firefox, а заметки можно было сохранить.

Systemd-oomd опрашивает systemd на наличие контрольных групп с поддержкой OOMD … Cgroups должен будет использовать EnableOomdKill, если они хотят быть убитыми

Это как?

Поведение systemd-oomd контролируется с помощью нового файла конфигурации oomd.conf

Топики на LOR:

Страницы в интернете:

 , ,

Einstok_Fair ()

systemd одновременный запуск/остановка нескольких юнитов

Привет, лор!

Задача: правкой только одного юнита запускать/останавливать указанные.

[Unit]
Description=Dummy start/stop unit

[Service]
Type=oneshot
ExecStart=/usr/bin/sh -c "systemctl start a.service b.service c.service"
ExecStop=/usr/bin/sh -c "systemctl stop a.service b.service c.service"

Юниты не запускаются, хотя в логе всё хорошо. Сама команда в терминале работает, как ожидается.

Благодарю за помощь.

 ,

rmu ()

Ошибка запуска юнита в Debian 8

Нужна помощь.

Не запускается юнит:

[Unit]
Description=неважно
Requires=network.target

[Service]
Type=forking
ExecStart=/usr/local/bin/mybin
Restart=always
RestartSec=10
TimeoutSec=10

[Install]
WantedBy=graphical.target

Ошибка следующая:

mybin.service holdoff time over, scheduling restart

мне нужно интегрировать бинарь в эту систему, поэтому

[Install]
WantedBy=graphical.target

не мое художество, сделать

systemctl set-default target multi-user

я не могу, ЕСЛИ вдруг кто-то об этом решит мне сказать.

А, и конечно же, руками все взлетает.

 

OrdinaryMind ()

Старт сервиса после получения ip (systemd)

Всем привет! Есть программа которая биндитится к ip адресу vpn (openvpn) сети. При перезагрузке происходит ситуация, когда сервис стартует до момента настройки tun интерфейса и как следствие возникает крит о том что не возможно создать сервер на заданном ip. Прописывание After openvpn не помогает, потому что последнему требуется время на создание и настройку интерфейса, а systemd считает что сервис успешно запустился еще за долго до этих действий. Вопрос - как без костыля в виде промежуточного скрипта запустить мой сервис после получения ip на tun?

 , ,

Serbis ()

bash, systemd - создание юнита

OC - fedora

Проблема в том, что каждый раз при выходе из режима сна слетает настройка монитора подключенного по hdmi. 1. Обращался к офф. странице xrandr, создание xprofile не решило проблему, т.к настройка сбрасывается при выходе из сна. 2. Запили юнит, добавил его в сервисы положил в /etc/systemd/system Код юнита:

[Unit]
Description=Close display app and set correct resolution of display instantly
After=suspend.target
After=hibernate.target
After=hybrid-sleep.target

[Service]
Type=oneshot
ExecStart=/usr/lib64/pm-utils/sleep.d/xrandr.sh
User=root
Group=root

[Install]
WantedBy=suspend.target hibernate.target hybrid-sleep.target

xrandr.sh:

var=$(sudo xrandr | grep "HDMI1")
var2='1920x1080'
var3='xfce4-display-settings'
var4=$(ps aux | grep $var3)
	if [[ "$var4" == *"$var3"* ]];then
	var5=$(grep -Eo -m 1 '[0-9]{4,5}' <<< "$var4" | head -1)
	sudo kill "$var5"
	fi
	if [[ "$var" != *"$var2"* ]]; then
	sudo xrandr --output HDMI1 --mode 1920x1080 --rate 60.0
	fi

По факту: при выходе из сна - закрывает снова открывающийся display-setting(открывается когда типа обнаружено устройство новое hdmi), закрывает это приложение, но вот почему-то xrandr не выполняет, постоянно пишет:
No protocol specified Can't open display :0.0
Magic в том, что когда я вызываю терминал через ctr+alt+e(после выхода из сна и после того как мое кастомное разрешение было сброшено) то сразу же меняется разрешение на нужное...
Пример: вышли из режима сна - у нас 4к разрешение, вызываю терминал - разрешение меняется на то, которое указано в скрипте( или может где-то запоминает пред. разрешение)

 , , ,

hanover ()

coredumpctl gdb - теперь отладчик из под рута запускать нужно O_O?!

$ coredumpctl gdb
...
File "/var/lib/systemd/coredump/core.single-trace.503.b7591dc0b35b48408b1d92fb749a6950.4055.1593755782000000.lz4" is not readable: Отказано в доступе

Я могу конечно его извлечь и сменить владельца, но как то это выглядит криво. Делать

sudo coredumpctl gdb

не хочется, да и оно работает с ограничениями какими то

$ sudo coredumpctl gdb
...
(gdb) bt
#0  0x000055ac76aef60a in GreenTracer::init_r0 (this=0x7ffda4f8df50, ftracer=..., catcher=..., r0=<error reading variable: Cannot access memory at address 0x7ffda4f8d940>)
    at src/green_tracer.cpp:46
Backtrace stopped: Cannot access memory at address 0x7ffda4f8d7c8

Как это теперь вообще делают Ъ?

 , ,

AntonI ()

Ноут не хочет просыпаться после закрытия крышки, ухода в сон

Здравствуйте, столкнулся с очередной проблемой после очередного обновления arch linux. Ноутбук перестал просыпаться после закрытия крышки или ухода в сон, мигает кнопка включения и индикатор на обратной стороне экрана ThinkPad'а Что может быть?

 , , ,

kevlik ()

systemd в продакшене и ентерпрайзе

Всем ночи.
Тяпница!
Вот придумали системд. вейланд, mir, позиционируя их, как глобальную замену устаревшим init, xorg...
А расскажите, какие проблемы у вас решили эти замечательные вещи, и как теперь вам стало с ними легко жить?

 , , ,

darkenshvein ()

MPD мусорит в логах, но работает

Настроил mpd, работает отлично. Но! В логах по несколько раз в день появляются следующие строки:

Jun 20 06:23:13 dozer systemd[113368]: mpd.socket: Failed to create listening socket (0.0.0.0:6600): Address already in use
Jun 20 06:23:13 dozer systemd[113368]: mpd.socket: Failed to listen on sockets: Address already in use
Jun 20 06:23:13 dozer systemd[113368]: mpd.socket: Failed with result 'resources'.
Jun 20 06:23:13 dozer systemd[113368]: Failed to listen on mpd.socket.
Jun 20 06:23:16 dozer mpd[113383]: exception: Failed to bind to '192.168.77.1:6600'
Jun 20 06:23:16 dozer mpd[113383]: exception: nested: Failed to bind socket: Address already in use
Jun 20 06:23:17 dozer systemd[113368]: mpd.service: Main process exited, code=exited, status=1/FAILURE
Jun 20 06:23:17 dozer systemd[113368]: mpd.service: Failed with result 'exit-code'.
Jun 20 06:23:17 dozer systemd[113368]: Failed to start Music Player Daemon.

Что происходит понять не могу. Кто пытается запускать (повторно) тоже не нашёл. Порт естессно занят, им же и занят. Вот и ругается.

В конфиге:
bind_to_address «192.168.77.1»
bind_to_address «127.0.0.1»
port «6600»
audio_output {
type «httpd»
name «DOZER HTTP Music Streamer (flac)»
encoder «flac» # flac, vorbis, lame
port «7700»
bind_to_address «192.168.77.1» # optional, IPv4 or IPv6
quality «1.0» # do not define if bitrate is defined
# bitrate «256» # do not define if quality is defined
format «44100:16:1»
max_clients «10» # optional 0=no limit
always_on «yes»
}

Подскажите направление, может кто сталкивался.

 ,

Vint ()

x11vnc systemd и gui tray

Подскажите, пожалуйста, возможно ли из юнита systemd запустить x11vnc с ключом -gui tray? Если возможно, то как?

Вот мой юнит:

[Unit]
Description=x11vnc server
Requires=display-manager.service
After=multi-user.target network.target syslog.target network-online.target
Wants=syslog.target network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -display WAIT:0 -nolookup -bg -loopbg -noxdamage -shared -dontdisconnect -rfbport 5900 -no6 -noipv6 -noxfixes -forever -rfbauth /etc/x11vnc.pass
ExecStop=/usr/bin/x11vnc -R stop
Restart=on-failure
RestartSec=2
[Install]
WantedBy=multi-user.target

Так всё работает хорошо, но если добавить -gui tray, то перестает запускаться. В лог пишет:

*** XOpenDisplay failed (:0)
*** x11vnc was unable to open the X DISPLAY: ":0", it cannot continue.
*** There may be "Xlib:" error messages above with details about the failure.

Если просто в терминале вбить /usr/bin/x11vnc -auth guess -nolookup -noxdamage -shared -dontdisconnect -rfbport 5900 -no6 -noipv6 -noxfixes -forever -rfbauth /etc/x11vnc.pass -gui tray, то запускается и работает, иконка появляется.

Хочу, чтобы сервер запускался сразу после перезагрузки, а при входе в систему было видно иконку…

 , , ,

le_ ()

Почему вместо systemd не используют make ?

В systemd есть «цели», которые надо «достичь» (т.е. в терминологии make обновить/собрать). Можно сказать, что задача состоит в том, чтобы собрать систему в память. И это как раз подошло бы для make.

Казалось бы unix way - это использовать уже́ то, что есть, грамотно скомбинировав с подходящими другими средствами.

 ,

Einstok_Fair ()

nfs сервер сломался

работал-работал. потом демон внезапно перестал стартовать.
особых манипуляций в системе не помню.
попробовал для починки:
apt purge rpcbind nfs-kernel-server
rm -r /var/lib/nfs/

ставлю снова, опять:
systemctl restart nfs-kernel-server.service
Failed to restart nfs-kernel-server.service: Unit proc-fs-nfsd.mount is masked.

systemctl unmask proc-fs-nfsd.mount
root@nasian:~# systemctl restart nfs-kernel-server.service
Failed to restart nfs-kernel-server.service: Unit proc-fs-nfsd.mount is masked.


exports уже пустой, во избежание.

 , , ,

darkenshvein ()

gentoo без openrc

Я просто поинтересоваться. Допустим, я хочу без openrc. Тогда вот такое конфигурирование не работает https://wiki.gentoo.org/wiki/OpenRC, да?

Т.е network уже не настраивается с помощью /etc/conf.d/net, верно? А настраивается systemd-networkd.service

Т.е, в debian есть обёртка, с помощью которой осуществляется настройка network(/etc/network/interfaces), а в gentoo, если избавиться от openrc такой обёртки нет. Верно?

 , ,

bryak ()