Нужно : запустить несколько приложений из shell скрипта. В конце скрипта мне нужно убить приложения, т.е. нужно сохранить их pid. Кроме того запуск с & в конце мне не подходит (специфика не моего приложения, а стороннего - нужно иначе работать не будет), т.е. я думую нужно как-то новый сеанс создовать и в нем запускать.
Вот это:
Кроме того при этом для каждого запущенного приложение нужно указать начальный каталог запуска. Т.е server будет считать что он запущен из каталога где я скрипт запустил, а мне нужно насильно ему сказать что он запущен из другого каталога, иначе он не сможет найти свои каталоги с конфигами. Как это сделать ?
1) В основном скрипте запускать отдельно для каждого приложения свой скрипт
2) а в них:
cd /нужная/директория
echo $$ > /var/тырыпыры/дляПриложения_N1.pid
exec приложение_N1
3) затем когда убивать надо будет
for i in /var/тырыпыры/*;do kill $(cat $i); done
$ (cd /tmp; vi)& echo $!
[1] 7919
7919
$ ps
PID TTY TIME CMD
7886 pts/1 00:00:01 bash
7919 pts/1 00:00:00 bash
7920 pts/1 00:00:00 vi
7924 pts/1 00:00:00 ps
[1]+ Stopped ( cd /tmp; vi )
как видим, 7919, выведенные командой echo, и есть pid sub-shell-а, внутри которого запущен vi.
pid, считанный из $!, естественно, надо сохранить в какой-нибудь переменой. для последующего использования.
Еще один вопрос появился по поводу запуска, но уже удаленного.
Мне нужно запустить приложение на удаленном терминале.
У меня есть ssh доступ, при этом мне еще нужно залогнится на терминале после ssh доступа под рутом, т.к. напрямую под рутом войти нельзя.
Можно ли как-то все это автоматизировать в скрипте, чтобы только ввод паролей был ?
С точки зрения реализации я не знаю как мне посылать команды когда я войду по ssh туннелю
ssh user@ip
ввод пароля
и все далее под контролем оболочка ssh и пока я из нее не выйду дальнейшие команды в скрипте выполнятся не будут. А мне как раз нужно чтобы они выполнялись в ssh.
./starter: line 53: 24896 Terminated $app >/dev/null (wd: ~/Shell/Test/APP)
Не понимаю откуда это выползает ... мне нужно чтобы никаких надписей подобных не было. Я думал что 2> при kill поможет, однако эта строка все равно появляется ...
на строке 53 я выполняю сравнение с помощью test.
У меня тоже вопрос немного по теме. Как сделать чтобы после запуска программы дальше выполнялся скрипт, т.е. программа как бы запускалась в фоне.
Вот скрипт:
Скрипт останавливается пока не нажмешь CTRL+C тем самым прервав работу программы....
AvReg - По для организации Видеонаблюдения на Linux. ДЭНСИ:КАССА - Рабочее место кассира под Linux. Терминальные решения под Linux
Консультации по установке 1с+PostgreSQL+Ubuntu.