LINUX.ORG.RU

Проблемы с rc.local


0

1

Есть rc.local, этот скрипт запускается при запуске системы. При запуске системы хотелось бы 1) Примонтировать шары с других компов 2) Запустить скрипты которые берут погоду и количество писем

Я решил добавить все это в rc.local. Но такой скрипт выполняется долго, т.к. надо многое забрать из интернета. И я придумал гениальное решение - я все эти процессы запускаю в бэкгроунде. Т.е.

$cat rc.local

# Get weater
/home/user/bin/get_weather.sh &

# Get main
/home/user/bin/get_mail.sh &

# Mount shares
mount /media/nfs/file-server/mp3 &
mount /media/nfs/file-server/tmp &

Ха-ха. И вот случается у меня так что либо некоторые шары не примонтированы, либо погоды, либо почты нет. Я думаю что это из-за того что скрипт не ждет когда закончат работу процессы запущенные в бекграунде. Т.е. он их запускает, они еще не закончили работу, а он их уже убивает. Т.е. я думал что процессы будут жить когда скрипт завершит работу, а они умирают вместе со скриптом. Я прав? И что делать? Как сделать так чтобы скрипт что-то запустил в бэкграунде, сам умер, а дети бы его еще жили?

> 1) Примонтировать шары с других компов
man fstab?

2) Запустить скрипты которые берут погоду и количество писем

man nohup

AITap ★★★★★
()

А монтировать в fstab не удобнее?

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

Точно же. Чего-то я сразу не подумал - надо же запускать вместе с оконным менеджером. И все же мне все равно интересно - можно ли как-то запущенный процесс прибиндить к другому процессу (например init)?

Brobmindol
() автор топика
Ответ на: комментарий от AITap

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

Brobmindol
() автор топика
Ответ на: комментарий от AITap

man nohup - почитал. Понял что он делает. А как он работает? Я могу потом убить скрипт который запустил прогу с nohup?

Brobmindol
() автор топика
Ответ на: комментарий от Brobmindol

Да, можете, для этого он и предназначен.
Помимо этого стоит перенаправить stdout и stderr в /dev/null.

AITap ★★★★★
()

/home/user/bin/get_weather.sh &

/home/user/bin/get_mail.sh &

Сделайте меня развидеть это! =( Для таких вещей есть другие места же.

mount /media/nfs/file-server/mp3 &

mount /media/nfs/file-server/tmp &

То же самое.

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

Для пользовательских скриптов есть файлы инициализации оболочки. В bash это ~/.bash_login или ~/.bash_profile или ~/.profile.

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

Кстати, монтирование шар там тоже можно прописать, только сначала через fstab разрешить их монтирование (и, возможно, размонтирование) не только руту и там же отключить автомонтирование при старте системы.

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

Так и было задумано в начале - noatime,nodiratime,user=,password=,user,noauto.

Вообщем, довавил в конфиг файл xmonad запуск скрипта с автозапуском - теперь все работает отлично.

Brobmindol
() автор топика

«Проблемы с rc.local» - у тех кто использует rc.local

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