Удаленное выполнение команды и очисткаLinux

Ответить
Anonymous
 Удаленное выполнение команды и очистка

Сообщение Anonymous »

Цель < /h2>
выполнить долгосрочную команду удаленно удаленно со следующими возможностями: < /p>

[*] Мы можем убить задачу с помощью его pid < /li>
Если задача завершена, его исходной код должен быть написан на файл < /li>
Запуск. /> (streck gule) Stderr и Stdout должны использовать линейные буферизации, так как они записываются в файл < /li>
< /ol>
Для моего использования, несколько случаев этой задачи будут запущены одновременно на разных серверах. Тем не менее, все серверы (включая сервер запуска) будут использовать один и тот же рабочий каталог (он монтирован в одном и том же месте на всех серверах). < /P>
Выпуск < /h2>
На данный момент я могу удовлетворить первые 3 требования. Задача - это программа C ++ с именем Main , и мы можем предположить, что относительный путь от $ home до нашего рабочего каталога - это kory_directory_path . В текущем решении используются два вспомогательных сценария ( и helper.sh ) для достижения своих целей.
Во -первых, команда ssh :

Код: Выделить всё

$ ssh {server} "cd {wdpath}; ./run.sh"
Затем мы используем run.sh для отсоединения от сеанса ssh и записать PID в файл.

Код: Выделить всё

#!/bin/bash

nohup ./helper.sh &>/dev/null &
echo $! > process.pid
Далее мы используем helper.sh для записи статуса выхода нашей программы.

Код: Выделить всё

#!/bin/bash

./main > process.stdout 2> process.stderr
echo $? > process.status
< /code>
Это, кажется, работает, но есть несколько вещей, которые мне не нравятся. < /p>

 Я должен создавать 2 временных сценариев на дистанционное вызов, так как каждый вызов основного < /code> будет кормить некоторые командные аргументы, которые различаются (и мне нужно будет корректировать имена вывода). nohup 
.
ПИД, который я записываю, на самом деле не принадлежит к основному процессу , но его родительская оболочка.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... nd-cleanup
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»