Nowe posty

xx Dystrybucja pod HP Omen (6)
Wczoraj o 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
Wczoraj o 21:08:23
lamp Problem z Linux Lite po instalacji (0)
Wczoraj o 19:50:30
xx Ile pingwinów? (1)
Wczoraj o 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: Skrypt i uruchamianie w tle - mała niewygoda  (Przeczytany 6151 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
?