2012-01-18 3 views
1

Мне нужен способ сценариев оболочки, чтобы определить, когда удаленный linux/OSX завершил все /etc/init.d/* для того, что когда-либо выполняло уровни, которые я выбрал для запуска.Необходимо определить, когда linux/OSX полностью инициализирован

, так как я знаю, что могу сделать ssh в virutal box на моей сети, пока он все еще загружается и запускает команды, такие как/bin/true или/bin/ps, что ничто не находится в состоянии, в котором оно должно быть.

в основном мне нужно

while [ ${INIT_STILL_RUNNING_ON_REMOTE_SYSTEN} ] 
do 
    sleep 30 
done 
ssh [email protected]:command 
+4

Почему, на ваш взгляд, это полезно? –

+0

У меня есть некоторые действительно раздражающие вещи разработки, которые работают на virutal linux box на моем mac. прежде чем я смогу запустить свою IDE, на виртуальной машине должен быть запущен и запущен определенный процесс. После этого я могу запустить MY IDE. Это действительно отстой, что я должен сидеть за своим рабочим столом, щелкая теми же кнопками и окнами каждый день, когда я могу установить какой-то скрипт, чтобы начать все, чтобы мой кофе –

+0

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

ответ

4

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

Например, если вы создали сценарий под названием S99finished и поместили его в папку уровня выполнения, он будет работать последним на этом уровне выполнения. Соответствующий K00finished будет работать первым при выключении.

S99finished может выглядеть примерно так:

#!/bin/bash 
touch ~/.init_finished 

и K00finished может выглядеть примерно так:

#!/bin/bash 
if [ -e ~/.init_finished ]; then 
    rm ~/.init_finished 
fi 

Тогда ваш скрипт запуска будет опрашивать до ~/.init_finished не существовало в этот момент он пошел бы на это веселый способ ,

Обратите внимание, что сценарии запуска выполняются с правами администратора, поэтому использование домашнего каталога tilde будет помещено в корневой каталог. Это, вероятно, не идеально для того, что вы делаете, но иллюстрирует суть. Это так же легко положить в /var/log или где-то еще, что было распространено для опроса. Просто помните, что он должен иметь разрешения на чтение для всех, где бы вы ни придерживались.

+0

Я думаю, вы имеете в виду K00finished. –

+1

Вы правы, глупые опечатки. Благодарю. – tpg2114

Смежные вопросы