Shell. Stdout в переменную, затем в файл
Есть Shell скрипт, внутри которого запускается сервис/демон и его stdout пишется в log, затем скрипт продолжает заниматься своими обязанностями:
service -a -b -c &>>log &
Есть Shell скрипт, внутри которого запускается сервис/демон и его stdout пишется в log, затем скрипт продолжает заниматься своими обязанностями:
service -a -b -c &>>log &
В скрипте есть несколько операторов if [ ], в квадратных скобках которых есть одинаковое условие, например `pgrep -c $N` -eq 1 По мере доработки скрипта, условие приходится менять. Хотел внести его в переменную a=«`pgrep -c $N` -eq 1», но в переменную сразу записывается результат, либо a=«\`pgrep -c $N\` -eq 1» - получаю «[ too many arguments». Тоже самое необходимо делать для некоторых длинных команд, но пока получаю только «too many arguments».
Установил Ubuntu 16.04 Core (не desktop). Установил Wine, xorg и openbox:
apt-get install --no-install-recommends xserver-xorg-core
apt-get install --no-install-recommends openbox
Хотел запустить конфигуратор winecfg, возникла проблема, при запуске starx любое окно не реагирует на нажатие мышью, ни перетаскивание, ни кнопки, вообще никак.
Что мне нужно доустановить? Нужны минимальные (базовые) XServer и OpenBox, остальное буду прикручивать по необходимости.
Устанавливаю Ubuntu 16.04 в виртуальной машине QEmu. Файловую систему Ext4 для образа .img выбрал как самую шуструю. При установке система не может установить GRUB2, сообщает об unknown ошибке при установке загрузчика. Grub как таковой устанавливается, но не создаётся файл grub.cfg, а если устанавливать систему на Ext3, то всё ставится без ошибок. Такая же проблема с любой ОС Linux. Причину не знаю, возможно какая-то несовместимость QEmu/.img/Ext4.
Сейчас загружаюсь так, ввожу команды в grub вручную:
grub> set root=(hd0)
grub> linux /vmlinuz root=/dev/sda w
grub> initrd /initrd.img
grub> boot
Но необходимо, чтобы оно грузилось само. Что нужно прописать в grub.cfg?
Задача для слабой машины x86 подобрать дистрибутив Linux'а, который после установки будет занимать минимум места, то есть не нужны никакие приложения и тем более графический интерфейс. Затем будет установлен Wine последней версии, то есть Linux нужен лишь для запуска Wine.
Устанавливал Ubuntu Core, она занимает 1.2Gb без Wine - это слишком много. Грузится 5 минут. Желательно Linux + Wine уместить на 512Mb, либо уменьшить размер системы удалив лишнее. Нашёл TinyCore, но так и не понял как его установить на диск, а тем более как потом ставить Wine. Ещё нашёл варианты: Debian, Arch, DSL, SliTaz, но в них свои заморочки.
Полагаю, что ядро Linux'а должно быть достаточно свежее, чтобы поддерживало все ядра и инструкции процессора (SSE, SSE2, SSE3, 3Dnow и т.д.) и соответственно, чтобы Wine не сбоил.
Посоветуйте, пожалуйста...
Предыстория: Wine Stable 3.0 (i386) был установлен и настроен на ПК, затем перенесён на arm-приставку, где работает посредством эмуляции arm-x86. До недавнего времени в Wine на приставке работало .exe-приложение, затем приложение обновилось. Обновление приложения добавило поддержку Windows 10. Теперь при запуске приложения на ПК (в Wine) оно до сих пор работает, а при запуске в приставке возникает ошибка:
A debugger has been found running in your system. Please, unload it from memory and restart your program.
Лог:
0037:err:winediag:schan_imp_init Failed to load libgnutls, secure connections will not be available.
Guest application trying to set TF flag in eflags.
003c:fixme:service:svcctl_EnumServicesStatusExW resume handle not supported
003b:fixme:service:svcctl_EnumServicesStatusExW resume handle not supported
В чём может быть причина ошибки и как её устранить?
Что я пытался сделать: В эмуляторе приставки свой дистрибутив linux'а, в котором установлен Wine. Проверил наличие libgnutls - есть libgnutls26 и libgnutlsxx27. Установил libgnutls30, создал symlink 26 -> 30, 27 -> 30, 28 -> 30 и т.д. - при запуске ругается «GNUTLS_1.4 not found in libgnutls26», откатил все изменения. Проверил наличие libgcrypt - отсутствует, попытался установить libgcrypt11 - говорит «a newest version installed». Установил libgcrypt11-dev, теперь ни одно приложение не запускается и в логе нет ошибок. Снова откатил все изменения.
Приветствую! Надеюсь, разделом не ошибся, и я с linux на «ВЫ».
В VirtualBox установил mini ubuntu console (command line only), 16.04 Xenial Xerus. Установил Xorg. Установил openbox. Установил wine.
Осталось установить winetricks и прочее ПО.
Запускаю startx: серый фон и курсор мыши. Открываю terminal emulator, ввожу wine winecfg, вижу окно winecfg. Выхожу из gui, ввожу в консоли:
startx wine winecfg — :0
запуск X, черный экран, обратно в консоль:
X.Org X Server 1.18.4
Release Date: 2016-07-19
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.4.0-97-generic i686 Ubuntu
Current Operating System: Linux WinePC 4.4.0-119-generic #143-Ubuntu SMP Mon Apr 2 16:08:22 UTC 2018
i686
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-119-generic root=UUID=f44fa725-dee7-4672-9f17-2d
095b912939 ro splash quiet
Build Date: 13 October 2017 01:57:05PM
xorg-server 2:1.18.4-0ubuntu0.7 (For technical support please see http://www.ubuntu.com/support)
Current version of pixman: 0.33.6
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/home/user/.local/share/xorg/Xorg.0.log", Time: Wed Apr 25 04:52:55 2018
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
waiting for X server to shut down (II) Server terminated successfully (0). Closing log file.:beef, d
вроде никаких ошибок, и так с любым .exe
Как заставить выполняться startx с параметрами из строки консоли (командной строки)?