Nowe posty

Autor Wątek: Skrypt i uruchamianie w tle - mała niewygoda  (Przeczytany 6190 razy)

rkaminski

  • Gość
Skrypt i uruchamianie w tle - mała niewygoda
« dnia: 2009-01-29, 13:31:52 »
Witam

Napisałem sobie skrypt, który teoretycznie powinien robić tak, że tam sobie tworzy odpowiednie katalogi, przegrywa pliki, nadaje prawa wykonywania itp. a na końcu uruchamia odpowiedni program w odliczeń kwantowych poleceniem:

runcry06 $nazwa &

gdzie $nazwa to nazwa podanego pliku wejściowego do programu. Program uruchamia się w tle i nie ma problemu, liczy sobie dalej nawet jak się wyloguję z konsoli.

Mała niedogodność jest taka, że po uruchomieniu mojego skryptu (nazwałem go runc i dodałem do PATH i nadałem prawa wykonywania) tak czy siak muszę nacisnąć ENTER, aby skrypt zadziałał dalej. Szczególnie jest to niewygodne jak podam mu wiele plików do uruchomienia a skrypt jest pętlą to przy każdym cyklu trzeba to zrobić. Czy to da się zautomatyzować?

Z góry dzięki

Poniżej dokładnie problem:
[student10@monty crystal]$ runc paracetamol2_test &
Uruchomiono job o nazwie 'paracetamol2_test'

suffix of output file: out
printed output filename paracetamol2_test.out
creating temporary directory /usr/local/crystal06/scratch/tmp21210
/scratch/student10/crystal/paracetamol2_test/paracetamol2_test.out
output in /scratch/student10/crystal/paracetamol2_test/paracetamol2_test.out
input expected in /scratch/student10/crystal/paracetamol2_test/paracetamol2_test.d12
/usr/local/crystal06/scratch/tmp21210
tmp /usr/local/crystal06/scratch/tmp21210
FORTRAN STOP
SCF abnormal end - no wf written in fort.9

TUTAJ MUSZĘ NACISNĄĆ ENTER MIMO, ŻE DZIAŁA W TLE...

A poniżej kod skryptu:

#!/bin/bash
for i in "$@"; do
nazwa=$1
cd /scratch/$USER/crystal
mkdir $nazwa
mv /scratch/$USER/crystal/$nazwa.d12 /scratch/$USER/crystal/$nazwa/$nazwa.d12
cd /scratch/$USER/crystal/$nazwa
chmod +x $nazwa.d12
runcry06 $nazwa &
echo ""
echo "Uruchomiono job o nazwie '$nazwa'"
echo ""
shift
done

arctgx

  • Gość
Skrypt i uruchamianie w tle - mała niewygoda
« Odpowiedź #1 dnia: 2009-01-29, 15:19:44 »
Dla większej czytelności mógłbyś kody pakować w tag CODE: http://forum.linux.pl/help.php#bbcode

Ja nie rozumiem, że to w ogóle działa po enterze, no chyba że wynikałoby to z działania runcry06. Chodzi mi to to, że odpalasz go na katalogu $nazwa, a nie pliku $nazwa.d12, któremu chwilę prędzej nadajesz prawa do wykonywania.

rkaminski

  • Gość
Skrypt i uruchamianie w tle - mała niewygoda
« Odpowiedź #2 dnia: 2009-02-01, 22:38:06 »
To raczej wynika z tego jak działa program Crystal06. Działa on tak, że wgrywa się plik nazwa.d12 do jakiegoś katalogu a potem odpala poleceniem

runcry06 nazwa
Jak się go odpali nawet z poleceniami screen czy & to się zawsze coś wyświetla i trzeba nacisnąć Enter a to jest trochę niewygodne jeśli bym chciał puścić dużo obliczeń.

Czy da się to jakoś ominąć aby puścić jakiś program tak "zupełnie w tle".

chmooreck

  • Gość
Skrypt i uruchamianie w tle - mała niewygoda
« Odpowiedź #3 dnia: 2009-02-01, 23:02:55 »
echo -e "\\n" | runcry06 nazwa
?