Ответы пользователя по тегу Linux
  • Как запустить уже остановленную программу в фоне не переходя в foreground?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Нужно понимать два момента

    команды jobs, bg и fg являются внутренними командами шелла, и работают с дочерними процессами именно этого шелла.
    Если вы приостановили дочерний процесс (Ctrl-Z) или запустили его сразу в бэкраунда (ping google.com &), то командой fg вы выводите его на передний план. Это все равно что в винде вы взяли и поставили мышкой фокус на окне блокнота, после чего нажимая клавиши вы будете писать в этом блокноте.

    А если вы приостановили процесс Ctrl-Z и продолжили его через bg, он будет продолжаться в фоне, а на переднем плане будет ваш шелл - вы можете писать другие команды. Все равно что мышкой в винде вы кликнули в рабочий стол рядом с блокнотом, и поэтому нажимая клавиши вы будете писать не в блокноте а на рабочем столе (стрелки по иконкам бегают, какие-то хоткеи могут работать, Enter запустит текущую иконку)

    Для понимания потренируйтесь так:

    sleep 100
    CTRL-Z
    jobs
    bg 1
    echo I am still in shell
    fg 1
    CTRL+C


    И второй момент - можно запустить программу в фоне, и отсоединить ее от текущего шелла вообще (запустить ее через nohup sleep 100 & и отключитья от сессии, или выполнить
    sleep 100 &
    jobs
    disown
    jobs
    ps aux | grep sleep

    в этом случае bg/fg уже не помогут, так как программа запущенная в фоне уже имеет другого родителя, и не подконтрольна внутренним bg/fg - вернуть ее как дочерний процесс под текущий шелл уже не выйдет.

    Поэтому Ctrl+C, Ctrl+Z - это просто сигнал который ты отправляешь в текущий "foreground" процесс, с которым ассоциирован stdin
    Ответ написан
  • Запуск js скрипта в фоновом режиме через команду nohup?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    потому что эотт js скрипт не является исполняемым файлом. Его нужно запускать чем-то, например nodejs
    как питон запускается
    python myscript.py
    так и js надо
    node myscript.js

    или nohup node myscript.js &

    ну или прописать через шебанг путь к ноде и сделать файл исполняемым.
    Ответ написан
    Комментировать
  • Как реализовать удаление файлов до достижения определённого количества свободного места?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Почему именно питон, когда для таких задач как раз подходит баш, или вообще find?

    Почему нужно удалять когда заканчивается места, а не настроить изначально ротейт файлов, которые растут - именно так делается в нормальных случаях
    Ответ написан
    Комментировать
  • Поясните пожалуйста bash скрипт?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    кода done < <(ls -1 "./my_temp_dir/")

    ls -1 выводит содержание каталога в одну строку по одному наименованию
    <(blabla) создает из команды поток, который передается как файловый десктриптор
    < перенаправление данных из файлового дескриптора в предыдущую команду
    done является частью цикла, поэтому перенаправление идет не в done а в весь блок цикла.
    Ответ написан
    Комментировать
  • Как скачать файл в Putty?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    putty - это ssh клиент для подключения к удаленной консоли, а не для скачивания файлов.
    На сайте putty можно скачать pscp - он как раз используется для скачивания файлов по ssh

    Но если очень нужно скопировать что-то прямо из путти, то можно копировать текст напрямую для текстовых данных или через base64
    Ответ написан
    Комментировать
  • Как сделать readinessProbe по тексту файла?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    вам не нужен cat и ненужный pipe - просто
    grep -q "app start" /app/log

    Но вы уверены, что это нормально - просматриивать целый лог файл каждую итерацию рединесс пробы?
    Может быть все-таки лучше в программу добавить дополнительный ендпоинт и проверять ее через http пробу?
    Ответ написан
    2 комментария
  • Как соединить компьютеры в локальную сеть?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Здравствуйте, можно ли соединить несколько компьютеров в одну локальную сеть через OpenVpn, чтобы каждый из них мог пинговать любой другой без задействия сервера?

    OpenVPN это не волшебное что-то, это просто виртуальный сетевой интерфейс с шифрованным каналом.

    Когда ты открываешь VPN соединение, то представь что у тебя в компьютере появляется еще одна виртуальная сетевая карточка и виртуальным сетевым шнуром идет в сервер, к которому ты подключаешься. И все остальные участники вашей VPN сети тоже подключаются виртуальным проводом к VPN серверу.

    С другой стороны, вы можете настроить у каждого участника VPN сервер, и будете подключаться друг к другу. Но это надо всем все настроить и подключаться каждый с каждым, с огромным количеством виртуальных интерфейсов.

    Поэтому чтобы не городить такую сложно маршрутизируемую чушь и нужен один VPN сервер.
    Поэтому в общем случае - без сервера нельзя.
    Ответ написан
    Комментировать
  • Усиленно удалить файл в windows, возможно ли с помощью пары функций?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Вы не так понимаете, как это работает.
    В линукс файловая система использует структуру iNode в качестве хранения метаинформации о файлах. И когда вы открываете файл, по имени файла ищется iNode файловый дескриптор привязывается и лочит уже iNode. При этом имя файла на диске можно свободно удалять (а сами данные файла при этом удалятся позже, когда процесс который открыл файловый дескриптор его освободит).

    В виндовой файловой системе метаинформация и имя файла хранятся вместе, и поэтому открытый файловый дескриптор держит имя, и его нельзя удалить.

    Никакая недокументируемая функция это поведение не изменит. Пока процесс, который залочил файл в винде его не разлочит - ничего не получится.
    Ответ написан
    Комментировать
  • Как достать ссылки из текстового файла?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    while read; do
      echo $REPLY
    done<links.txt
    Ответ написан
    Комментировать
  • Как повысить привилегии в системе без sudoers?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Можно настроить логин под рутом через ssh ключ или даже пароль. Для безопасности запретить логин под рутом удаленно, только локальная авторизация, когда ты уже зашел на сервер под своим юзером.

    Можно поправить pam.d чтобы разрешить su на рута без пароля

    Можно на сам httpd сделать suid, chown root:root но в конфиге указать apache юзера - апач сам переключит

    Ну есть еще один хитрый вариант - поднимать апач на непривелированном порту, типа 8080, и в iptables сделать редирект с 80 на 8080. Тогда апач можно запускать свободно от имени юзера, а сайт будет работать и на 80 и на 8080.
    Ответ написан
    Комментировать
  • Есть ли консольный редактор для Linux, в котором просто выделять весь текст?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    А что подразумевается под буфером обмена?
    Ты сидишь в линуксе под линуксовым текстовым терминалом?
    Ты сидишь в линуксе под гуи и запускаешь терминал?
    Ты сидишь и подключешься к линуксу удаленной машиной и буфер обмена у тебя не в линуксе а в твоей локальной машине, который нужно передать удаленно по ssh?

    Когда поймешь что у тебя скорее всего третий вариант, ты поймешь, что буфер обмена это не просто так.
    даже vi вполне подойдет, чтобы удалять/заменять текст.
    Ответ написан
    Комментировать
  • Как в скрипте на bash войти под другим логином?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    sudo su -l user -c 'pip3 install --user bs4 lxml requests'


    под sudo, команда su не будет запрашивать пароль.
    Ответ написан
    7 комментариев
  • Как вы понимаете работу следующей команды?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Это ответ начала установки tcp соединения?

    Нет конечно, это уже ответ от вашего TCP сервера. Скорее всего там какой-то простое приложение которое по telnet протоколу в ответ на PING возвращает вам "PONG"
    Ответ написан
  • Как поднять сервис с помощью bash скрипта?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Файлы вроде как у вас везде заданы с полным путем, но я подозреваю, что при запуске крона PATH не содержит всего чего нужно
    В идеале было бы просто добавить в кроне скрипт с перенаправлением вывода ошибок и посмотреть логи, типа так

    Попробуйте либо прописать полный путь к iconv и grep либо добавить в кроне перенаправление вывода в лог и посмотреть на что ругается скрипт
    1 * * * * /bin/sh /home/user/script.sh>>$HOME/script.log 2>&1
    Ответ написан
    Комментировать
  • Как отформатировать в NTFS?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    cat /proc/filesystems
    и смотри, есть ли там ntfs
    если нет, то никак, надо устанавливать подержку, или ждать пока ntfs появится в ядре вашего дистрибутива (еще нет ни одного дистрибутива, хотя планируется)
    Ответ написан
    Комментировать
  • Выравнивание строк в терминале?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    В терминале как такового выравнивания не существует.

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

    Конечно можно написать функцию и вывод каждой команды через нее пропускать, чтобы через какой-нить printf выровнять все направо.

    Вывести один символ справа, можно например так:
    read WindowHeight WindowWidth<<<$(stty size)
    printf "%$WindowWidth" "A"

    Вычислять длину каждой строки и выравниваешь по центру или по правому краю.
    Но адекватного смысла такой вопрос лишен.

    Если надо весь вывод парсить, запусти новый баш с перенаправлением, например так:
    bash|(while read;do printf "%80s\n" $REPLY;done)
    вместо (..) можешь свой скрипт написать, который будет детально все парсить - вывод команд будет выравниваться.
    Ответ написан
  • Как запустить функцию в bash из командной строки?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    1. Просто выполнить функцию в командной строке.

    2. Добавить ее в .bashrc или в .profile, чтобы она загружалась при логине

    3. Выполнить ваш скрипт с функцией в текущей оболочке, она будет доступна после этого (
    $ source script_with_function.sh
    $ Autobak
    Ответ написан
    3 комментария
  • Ошибка при установке программ?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Если выдает ошибку, то ее надо исправить.
    Самый простой способ - загуглить текст ошибки и почитать первые 10-15 ссылок.

    А вот говорить что "у меня ошибка и посоветуйте" без деталей - это непродуктивно, ибо телепатов нет и гадать какая именно ошибка - это означает, заниматься шаманством, экзорцизмом и некромантией.
    Но судя по титулу вы в этом сами спец, так что помоги себе сам.
    Ответ написан
    4 комментария
  • Есть ли решения для реализации автояркости для мониторов без этой функции?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Я сделал проще.
    Поставил жалюзи и хорошую настольную лампу(светодиодная без пульсации - чтобы не мерцала).
    Лампа не должна быть особо мощной, просто подсвечивать, чтобы сглаживать контраст между монитором и окружающим пространством.
    Ответ написан
    Комментировать
  • Выход из гибернации на другом железе?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Сомневаюсь. Даже при идентичном железе, некоторые устройства могут быть прописаны по пути.
    Включишь диск через другой SATA разъем - уже поменялся ID

    Нужно пробовать, зависит от того, насколько совпадет железо. Но даже при идентичности железа, я бы поставил 50%.
    Ответ написан
    Комментировать