LINUX.ORG.RU
ФорумAdmin

Запустить процесс в отдельном «потоке» чтоли


0

0

Привет!

Скажите, пожалуйста, как мне запустить sh скрипт, в отдельном «потоке» или как это правиьлно называется.

Допустим открываем gnome-terminal, пишем sh myscript.sh и запускается скрипт в этом же окне. Если я зыкрываю окно, то соответственно скрипт выключается.

Как его запустить, потом закрыть окно и он работал?

Спасибо


man nohup
man screen
можно ещё даемон написать

dimon555 ★★★★★
()

screen и nohup уже посоветовали. Про kml была щютка :) Ну и самое простое, добавить & в конце команды. Но тогда больше не увидишь ее вывода.

Bers666 ★★★★★
()
Ответ на: комментарий от true_admin

>Очевидно запускать в режиме ядра чтобы выход userspace-терминала не влиял. Так что используй kernel mode linux: http://www.linuxjournal.com/article/6516

Издеваешься? Человеку скрин нужен, а ты ему это ужас в нос тычешь.

nnz ★★★★
()
Ответ на: комментарий от Bers666

>Ну и самое простое, добавить & в конце команды. Но тогда больше не увидишь ее вывода.

Емнип, &–команды продолжают срать в терминал, и сдыхают при его закрытии.

Ну а уж если припоминать все методы реализации сабжа, то упомяну отправку SIGUSR1 башу-родителю процесса. После этого сам баш дохнет, а его потомок продолжает работать.

nnz ★★★★
()

ну коль пошла такая пьянка - еще возможно покатит setsid

Valmont ★★★
()
Ответ на: комментарий от nnz

должен же хоть кто-то это потестить и отписать результаты :)

true_admin ★★★★★
()
Ответ на: комментарий от DoctorSinus

Емнип, &–команды продолжают срать в терминал, и сдыхают при его закрытии.

проверил, так и есть



Запускаю гномотерминал с двумя вкладками.

fox@darkstar:~/Temp$ cat script.sh 
#!/bin/bash
while true; do
    echo "Я ещё жив"
    sleep 1
done
fox@darkstar:~/Temp$ ./script.sh &
[1] 14822
Я ещё жив
Я ещё жив
Я ещё жив
Я ещё жив
Я ещё жив
Я ещё жив
...
Закрываю вкладку, в которой происходило вышеуказанное безобразие, перехожу в другую:
fox@darkstar:~$ ps ax | grep script
14822 pts/3    S      0:00 /bin/bash ./script.sh
14945 pts/2    R+     0:00 grep --color=auto script

Cancellor ★★★★☆
()
Ответ на: комментарий от Cancellor

Хм, если терминал закрыть совсем, то процесс действительно дохнет...

А мы вот так:

fox@darkstar:~/Temp$ cat script.sh 
#!/bin/bash
while true; do
    echo "Я ещё жив"
    sleep 1
done
fox@darkstar:~/Temp$ cat wrapper.sh 
#!/bin/bash
DIR=$(dirname $(readlink -f $0))
[ -x $DIR/script.sh ] && exec $DIR/script.sh &
fox@darkstar:~/Temp$ ./wrapper.sh 
Я ещё жив
Я ещё жив
Я ещё жив
Я ещё жив
Я ещё жив
Я ещё жив
Я ещё жив
Я ещё жив
...
Закрываю терминал полностью, запускаю заново
fox@darkstar:~$ ps ax | grep script
18076 ?        S      0:00 /bin/bash /home/data/Temp/script.sh
18487 pts/0    S+     0:00 grep --color=auto script

Cancellor ★★★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.