The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"ssh и & "
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"ssh и & " 
Сообщение от lynx Искать по авторуВ закладки(??) on 24-Ноя-05, 15:36  (MSK)
приветствую!

есть два сервера,
на первом выполняется скрипт который через ssh выполняет на втором сервере другой скрипт

в скрипте c server1
ssh server2 /root/bin/script2

и все бы хорошо, но script2 (который на server2)
запускает background процесс
/root/bin/script_bg &

script_bg сразу не заканчивается и работать может очень долго

и получаем, что
ssh server2 /root/bin/script2
в скрипте на sserver1 не заканчивается, то что после этого уже ни чего не выполняется.

вот простой пример на ту же тему:
server1# ssh server2
server2# sleep 100 &
[1] 21229
server2# logout
соединение не разъединяется пока не отработает sleep 100,
сообщение "Connection to server2 closed." мы получаем только после этих 100 секунд.

вопрос собственно: можно ли запустить через ssh скрипт вроде script2, который бы в свою очередь запускал какой-нибудь script_bg&, и нормально завершить работу ssh не дожидаясь завершения script_bg?


если такое где-то уже обсуждалось киньте ссылочку, сам ищу, но пока не нашел....

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

  • ssh и & , lynx, 16:43 , 24-Ноя-05, (1)  
    • ssh и & , lynx, 16:44 , 24-Ноя-05, (2)  

Сообщения по теме [Сортировка по времени, UBB]

1. "ssh и & " 
Сообщение от lynx Искать по авторуВ закладки(??) on 24-Ноя-05, 16:43  (MSK)
>приветствую!
>
>есть два сервера,
>на первом выполняется скрипт который через ssh выполняет на втором сервере другой
>скрипт
>
>в скрипте c server1
>ssh server2 /root/bin/script2
>
>и все бы хорошо, но script2 (который на server2)
>запускает background процесс
>/root/bin/script_bg &
>
>script_bg сразу не заканчивается и работать может очень долго
>
>и получаем, что
>ssh server2 /root/bin/script2
>в скрипте на sserver1 не заканчивается, то что после этого уже ни
>чего не выполняется.
>
>вот простой пример на ту же тему:
>server1# ssh server2
>server2# sleep 100 &
>[1] 21229
>server2# logout
>соединение не разъединяется пока не отработает sleep 100,
>сообщение "Connection to server2 closed." мы получаем только после этих 100 секунд.
>
>
>вопрос собственно: можно ли запустить через ssh скрипт вроде script2, который бы
>в свою очередь запускал какой-нибудь script_bg&, и нормально завершить работу ssh
>не дожидаясь завершения script_bg?
>
>
>если такое где-то уже обсуждалось киньте ссылочку, сам ищу, но пока не
>нашел....

временно решил так:

вместо script_bg& - fork.pl script_bg


fork.pl
==cut==================
#!/usr/bin/perl
use strict;

my $argc = scalar @ARGV;

if (scalar $argc < 1) { die "parameter missing."; };

my @arg = @ARGV[0..($argc-1)];

my $pid = fork;

if ($pid == 0) {
    open(STDIN, '</dev/null') || die "Can't close STDIN [$!]";
    open(STDOUT,'>/dev/null') || die "Can't close STDOUT [$!]";
    open(STDERR,'>/dev/null') || die "Can't close STDERR [$!]";
    exec @arg;
    die "cant exec @arg"
}
elsif($pid > 0)
{
    print "PID-$pid\n";
}
else
{
    die "fork error.";
}
==cut==================


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "ssh и & " 
Сообщение от lynx Искать по авторуВ закладки(??) on 24-Ноя-05, 16:44  (MSK)
>>приветствую!
>>
>>есть два сервера,
>>на первом выполняется скрипт который через ssh выполняет на втором сервере другой
>>скрипт
>>
>>в скрипте c server1
>>ssh server2 /root/bin/script2
>>
>>и все бы хорошо, но script2 (который на server2)
>>запускает background процесс
>>/root/bin/script_bg &
>>
>>script_bg сразу не заканчивается и работать может очень долго
>>
>>и получаем, что
>>ssh server2 /root/bin/script2
>>в скрипте на sserver1 не заканчивается, то что после этого уже ни
>>чего не выполняется.
>>
>>вот простой пример на ту же тему:
>>server1# ssh server2
>>server2# sleep 100 &
>>[1] 21229
>>server2# logout
>>соединение не разъединяется пока не отработает sleep 100,
>>сообщение "Connection to server2 closed." мы получаем только после этих 100 секунд.
>>
>>
>>вопрос собственно: можно ли запустить через ssh скрипт вроде script2, который бы
>>в свою очередь запускал какой-нибудь script_bg&, и нормально завершить работу ssh
>>не дожидаясь завершения script_bg?
>>
>>
>>если такое где-то уже обсуждалось киньте ссылочку, сам ищу, но пока не
>>нашел....
>
>временно решил так:
>
>вместо script_bg& - fork.pl script_bg
>
>
>fork.pl
>==cut==================
>#!/usr/bin/perl
>use strict;
>
>my $argc = scalar @ARGV;
>
>if (scalar $argc < 1) { die "parameter missing."; };
>
>my @arg = @ARGV[0..($argc-1)];
>
>my $pid = fork;
>
>if ($pid == 0) {
>    open(STDIN, '</dev/null') || die "Can't close STDIN [$!]";
>
>    open(STDOUT,'>/dev/null') || die "Can't close STDOUT [$!]";
>    open(STDERR,'>/dev/null') || die "Can't close STDERR [$!]";
>    exec @arg;
>    die "cant exec @arg"
>}
>elsif($pid > 0)
>{
>    print "PID-$pid\n";
>}
>else
>{
>    die "fork error.";
>}
>==cut==================


my @arg = @ARGV[0..($argc-1)]; убрать надо, оно там не нужно :))

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру