Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Автозапуск приложения вызывает зависание сервера (

Странная ситуация. Тему ниже читал. Но у меня другая проблема.
Мне нужно при запуске сервера, автоматически запускать скрипты.
Пока запускаю один скрипт, для теста. Этот скрипт запускает приложения.
В результате сервер зависает через пару часов. И не пингуется. Потом отвисает и пингуется, входит по putty (не искал ещё проблему) но не перезагружается.

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

Что я делал.
В папке есть скрипт с командами root/myscripts/run_1.sh
Дал ему права chmod u+x root/myscripts/run_1.sh

Далее создал второй скрипт в папке etc/init.d/ Имя start_1.sh
Содержимое скрипта start_1.sh
Code
1
2
3
#!/bin/sh -e
sudo  root/myscripts/run_1.sh
exit 0
Дал ему права chmod u+x start_1.sh

И добавил этот скрипт в автозапуск
update-rc.d run_1.sh defaults 80

Теперь при запуске сервера, запускается скрипт start_1.sh и запускает скрипт start_1.sh. А скрипт start_1.sh запускает приложение.

Результат - прекрасная работа приложения 3-4 часа, потом сервер "падает". Не пингуется, не перезагружается.
Хотя на хостинге, в панели управления - пишет, что онлайн.

Что это может быть? Сервер или приложение? Или я неправильно запускаю скрипты?

При перезагрузке - пишет невозможно перезагрузить и
--
Locked by: pid 123959, cmdline /usr/sbin/vzctl start 10762 --wait
Container already locked
Locked by: pid 123959, cmdline /usr/sbin/vzctl start 10762 --wait
Container already locked
--

Добавлено через 5 минут
kill 123959 или kill 10762 - No such process
Ответ:
Сообщение от useruser
Может кто нибудь объяснит, что я такое сделал (запуск скрипта из скрипта), что породило такую ситуацию?
Запуск сприпта из скрипта к такой ситуации привести не может, хотя непонятно, где вы учились писать скрипты инициализации.
И запуск, и остановка, и перезапуск сервиса у вас будет вызывать всё тот же скрипт и запускать приложение еще раз.
Тем не менее, вероятнее всего, течёт ваша программа.
Вопрос: Скрипты установки приложения

Создайте три файла один без расширения и два с расширениями: .lib, .conf. Напишите скрипт установки приложения, состоящего из этих файлов, выполняющий следующие действия:
1)файл без расширения помещается в каталог /usr/bin, устанавливаются права на выполнение всем членам группы user.
2)файл c расширением .lib помещается в каталог /usr/lib/фамилия ,
3)файл с расширением .conf помещается в каталог /etc/фамилия и в него заносится путь к установленной библиотеке и исполняемому файлу.

Я новичок в этом, это мое задание для лабораторной работы. Собственно не понимаю конкретно,что значит - "скрипт установки приложения". Эти 3 файла должны присутствовать в каком-то приложении или что, и вот /usr/lib в этом разделе нет папки "фамилия", мне ее в ручную создавать или в скрипте. Любые ссылки с информацией, объяснения, или какой-нибудь пример в виде кода,будет полезен.
Это на линуксе.
Ответ: скрипт установки приложения, насколько я понял- это файл с текстом #! /bin/bash приложение- в такую то директорию, файлы- по своим.
Вопрос: Запуск приложений FreeBSD под Linux 2.6

Собственно в заголовке темы и есть весь вопрос - как запустить (перекомпилировать, но лучше просто запустить за отсутствием исходников программ) приложения созданные для работы по FreeBSD под системой Linux 2.6? Заранее спасибо за помощь!!
Ответ: Думаю, что нереально, так как ABI разные, а со стороны Linux c эмулацией FreeBSD все плохо.
Есть библиотека iBCS, поддерживающая эмуляцию ABI FreeBSD под Linux, но как пишут здесь http://www.linuxdoc.org/HOWTO/Linux+FreeBSD-6.html уже давно не поддерживается.

Единственное что приходит в голову - это запуск приложений на вируталке с FreeBSD.
Вопрос: Если запустить зараженное приложение WIN на линуксе, будут ли негативные последствия?

Госпрода, подскажите пожалуйста. Я купил некий обучающий курс, в его комплекте есть несколько программ и парсеров. Они жутко перезаражены. Вирус тотал просто бьется в конвульсиях, при их проверке. Подскажите пожалуйста, если я установлю на виртуалку с убунту и и на ней буду запускать эти программы, через wine эмулятор эти приложения, меня же эти вирусы торкать не будут?
Ответ:
Сообщение от Артем Шумилов
Подскажите пожалуйста, если я установлю на виртуалку с убунту и и на ней буду запускать эти программы, через wine эмулятор эти приложения, меня же эти вирусы торкать не будут?
Так зачем тебе виртуалка с убунтой? Ставь виртуалку с виндой от туда запускай прогу.
Вопрос: Как добавить свое приложение в Ubuntu Software

как добавить свое приложение в Ubuntu Software, если такой возможности нет то нету и смысла интересоваться Linux UBUNTU, python.
Ответ: Приложение можно распространять и отдельной сборкой, например через ваш сайт. Создали аудиторию, заинтересовали людей и дело пошло. А так ваш пост больше похож на рекламу .net.
Кстати в linux есть mono
Вопрос: Запуск графического приложения подальше от глаз

Есть python3 скрипт который запускает браузер. Chrome делает свои дела по ранее оговоренному сценарию. Главная проблема в том, что браузер постоянно на переднем плане при появлении. Приходиться его в постоянно сворачивать, переводить на второй рабочий стол и проч. Каким вижу решения:

1. Запускать в свернутом состоянии (банально, но лучше чем то что имею сейчас)
2. Отправлять на 2ой рабочий стол (уже лучше первого)
3. Мульти логин под несколькими пользователями из запуск приложения у каждого в сеансе (такое вообще можно?)

Ну и разумееться Ваше решение, которое скорее всего будет проще)
Ответ: после долгих решений остановился на утилите . Всем спасибо за советы!
Более детально изложу свое решение, которое получилось в стиле "банально-но-функционально"
основная идея

интегрировал данный код в ранее работающий сценарий
1. получаем список всех рабочих столов
2. получаем активный рабочий стол
3. переходим на один из неактивный столов
4. запускаем приложение (в моем случае Chrome)
5. возвращаемся на предшествующий рабочий стол



собственно_код...

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import subprocess, random, re
 
    # получаем список рабочих столов и текущий рабочий стол.
    # Должна быть установлена утилита wmctrl!
    # дает такой выхлоп:
    # 0  * DG: 1920x1080  VP: 0,0  WA: 0,0 1920x1053  1
    # 1  - DG: 1920x1080  VP: N/A  WA: 0,0 1920x1053  2
 
    def getDesktops(self):
 
        raw_output = subprocess.check_output('wmctrl -d',shell=True,
                                             universal_newlines=True)
        # разберем вывод построчно
        raw_output = raw_output.split('\n')
        # общее количество рабочих столов
        self.screens = []
        # текущий рабочий стол
        self.cur_screen = None
        for line in raw_output:
            try:
                screen = re.search(r'^.', line)
                self.screens.append(screen.group())
                cur_screen = re.search(r'^.(?=.*?\*)', line)
                self.cur_screen = cur_screen.group()
            except AttributeError:
                print('there is not group attr here...')
 
 
    # ищет неактивные рабочие столы и переключаеться на один из них
    def toggleDesktop(self):
 
        # получаем список рабочих столов
        self.getDesktops()
        # оформим множества для более удобной работы
        all_screens = set(self.screens)
        cur_screen = set([self.cur_screen])
        # получим список всех экранов кроме активного
        not_cur_screens = list(all_screens - cur_screen)
        # экран который не активный, на который можно переключиться
        choiced_screen = random.choice(not_cur_screens)
        print('{0} - экран на который переключимся '.format(choiced_screen))
 
        # собственно процесс переключения
        subprocess.call('wmctrl -s {0}'.format(choiced_screen),shell=True)
 
 
    # возвращает на рабочий стол который только что покинули
    def goToPrevDesktop(self):
 
        # задержка перед возвратом
        delay = 1
        time.sleep(delay)
        # собственно процесс переключения
        subprocess.call('wmctrl -s {0}'.format(self.cur_screen), shell=True)
Вопрос: Сворачивание панели задач в Xfce как в Mint

в mint есть сворачивание вбок панели, с помощью кнопочек по бокам панели, можно ли что то подобное сделать на Xfce ? обычное скрытие вниз не то

Добавлено через 26 минут
Xubuntu
Ответ:
Сообщение от tegami
хотел для удобства поближе к левой руке все назначить чтоб по клаве не бегать
гуглеж поэтому вопросу показал, что решение будет весьма непростым, включая редактирование исходников и ручную сборку менеджера выбора графического рабочего стола.
ссылки на чужие форумы тут выкладывать не приветствуется, но если не страшно читать на английском, то на форуме ubuntuforums ищем тему по ключевой фразе "Change default tty from tty7 (GUI) to tty2"
Вопрос: Бинарная переносимость приложения?

Добрый день.
Есть блейд машина с RH5.1, 64 бит и с довольно запутанной системой линковок бибилиотек и прочего окружения.
Есть приложение, написанное в конце 80-х, которое в принципе собирается (какие-то исходники и дурацкая система сборки есть). На Centos 4/5/6 убунту 14.04 федора какая-то последняя на архитектурах 86/64 и работает. Причем собранное на Centos4 x86 легко переносится на все мои центоси/убунты/федоры (и скорее всего похожие дистрибы).
На блейд не переносится.

Конкретно с этим приложением вылезает косяк - запрашивается 32-битная версия библиотеки libXaw.so.7, которая именно 32-битная отсутсвует, а 64бит оно не хочет. Собрать приложение на блейде без заголовочников не получится, а установить их нельзя. Пробовал таскать с собой локальную рабочую версию этой либы с центось 4 х86, но на блейде ее не подхватывает почему-то (я пробовал таскать все so-файлы вместе с бинарником). Отсутсвует export, и поиск либ в директории запуска не производится.

Кроме этого приложения мне предстоит еще переносить и другие. Они в прицнипе то собираются, но хотелось бы ограничится небольшим кругом ОС вроде редхата и передавать только бинарные файлы, не заморачиваясь с исходниками. Я вижу это так: я собираю на тех виртуалках, которые у меня есть (преимущественно центось) и переношу бинарные файлы с библиотеками so. И на конечной машине все это работает. Компилятор везде gcc, система сборки - make плюс какой-то самопал типа bash-скриптов или питона.

Конкретно вопрос такой: что где почитать про такие переносы?
Ответ: >Есть блейд машина
блейды бывают с интел итаниум, это принципиально другой проц и другой порядок байт в слове.
uname -a
cat /proc/cpuinfo
Вопрос: Скрипт запуска приложения

Всем привет!
Передо мной стоит следующая задача... Есть приложение, написанное под Windows, которое я хочу запустить на VPS-сервере с ОС Ubuntu. Начал с того, что установил wine и все запускается следующим образом:
DISPLAY=:0 wine Proga.exe
Так всё работает... Нужен скрипт, который будет следить за тем, что моё приложение работает и если вдруг оно закрывается, то скрипт должен запускать вновь это приложение. Код моего скрипта выглядит так:
PowerShell
1
2
3
4
5
6
7
8
9
10
11
#! /bin/bash
while true
do
if [ $(pgrep Proga.exe)>'0' ]
then echo "step..."
else {
DISPLAY=:0 wine /root/Proga.exe
}
fi
sleep 5
done
В этом скрипте не правильно работает строка DISPLAY=:0 wine /root/Proga.exe
В чём я допустил ошибку?
Ответ:
Сообщение от BESSON_off
... графической оболочки там нет, ...
Через xpra пробовали?
Доводилось из крона запускать браузер, делать снимок
экрана, отправлять на почту. На компе без видеокарты.
Все нормально отрабатывало. Возможно, и вам подойдет?
Вопрос: Клиентское приложение не может подключиться к серверу на vps Ubuntu 14.04

Здравствуйте! Существует клиент-серверное приложение, нормально работающее на localhost, но неспособное подключиться к vps-серверу (ошибка java.net.ConnectException: Connection timed out: connect). Вроде бы приложение написано правильно, в этом направлении уже спрашивал, да и на localhost, опять же, работает. Вероятно, проблемы с сервером. На сервере установлен только iptables из фаерволлов (вроде). Может ли быть такое, что это он блокирует входящее приложение? Пытаюсь подключать на порт 4444, он точно не занят - Java такую ошибку определяет и выдаёт.

Вот это выдает iptables -L , вроде никаких правил по Java тут нет.
Кликните здесь для просмотра всего текста
Код
Chain INPUT (policy DROP)
target     prot opt source               destination
fail2ban-MAIL  tcp  --  anywhere             anywhere             multiport dports smtp,urd,submission,2                           525,pop3,pop3s,imap2,imaps
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     all  --  novacjava            anywhere
ACCEPT     all  --  localhost.localdomain  anywhere
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             multiport dports http,https
ACCEPT     tcp  --  anywhere             anywhere             multiport dports ftp,12000:12100
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             multiport dports smtp,urd,submission,2525
ACCEPT     tcp  --  anywhere             anywhere             multiport dports pop3,pop3s
ACCEPT     tcp  --  anywhere             anywhere             multiport dports imap2,imaps
ACCEPT     tcp  --  anywhere             anywhere             multiport dports mysql,postgresql
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:8083
ACCEPT     icmp --  anywhere             anywhere


И вот что выдает iptables -L -n
Кликните здесь для просмотра всего текста
Код
Chain INPUT (policy DROP)
target     prot opt source               destination
fail2ban-MAIL  tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 25,465,587,2525,110,995,143,993
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     all  --  185.159.130.98       0.0.0.0/0
ACCEPT     all  --  127.0.0.1            0.0.0.0/0
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 80,443
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 21,12000:12100
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 25,465,587,2525
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 110,995
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 143,993
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 3306,5432
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8083
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0


Там видно собственный ip и localhost, это что-то значит?

Добавлено через 3 часа 13 минут
С помощью знающего человека отключил nginx, он был на 80 порту. С него запустил сервер (на 80 порт сокет подцепил), и удалось подцепиться клиентом. Выходит, с портами что-то? До этого на 4444 стучал.
Ответ: Dmitry, спасибо большое за ответ, нашёл руководство, изменил командой iptables -P INPUT ACCEPT правила, теперь коннектит на любой порт. Потом обратно закрыл и командой iptables -I INPUT -p tcp --dport 4444 -m state --state NEW -j ACCEPT открыл конкретный 4444, сохранил service iptables save.