Как написать сценарий
Модератор: Bizdelnick
-
patrik
- Сообщения: 44
Как написать сценарий
Столкнулся со следущей трудностью, установил apache все вроде ничего, но надоело постояно лезть в консоль чтобы выполнить команду sudo /etc/init.d/apache2 start , как написать или на чем сценарий чтобы он когда мне надо запускал и отключал apache. В окнах делал с помощью bat, а в Linux делается я не знаю 
-
Uncle_Theodore
- Сообщения: 3339
- ОС: Slackware 12.2, ArchLinux 64
Re: Как написать сценарий
patrik писал(а): ↑10.05.2007 00:13Столкнулся со следущей трудностью, установил apache все вроде ничего, но надоело постояно лезть в консоль чтобы выполнить команду sudo /etc/init.d/apache2 start , как написать или на чем сценарий чтобы он когда мне надо запускал и отключал apache. В окнах делал с помощью bat, а в Linux делается я не знаю
Я не понимаю, а при чем тут сценарий (скрипт, в смысле)? Надо, наверное, просто ярлычок сделать на рабочий стол, да и прописать туда нужную команду?
-
nesk
- Сообщения: 2268
- Статус: Линукссаксовец
- ОС: MS Windows XP Home SP3
Re: Как написать сценарий
Хочешь что бы apache стартовал при запуске системы
какой дистрибутив?
посмотри
man update-rc.d
какой дистрибутив?
посмотри
man update-rc.d
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
0xDEFEC8ED
0xDEFEC8ED
-
nesk
- Сообщения: 2268
- Статус: Линукссаксовец
- ОС: MS Windows XP Home SP3
Re: Как написать сценарий
Кое что о процессе загрузки linux
ядро загружает свою внутреннюю структуру.
далее запускается процесс init.
init прочитывает файл `/etc/inittab'. В этом файле указан уровень выполнения системы (т.е. консольный, графический, однопользовательский...). Посмотрите сами файл `/etc/initab' и увидите, что происходит на разных уровнях выполнения.
потом init запускает скрипт (обычно `/etc/rc.d/rc.modules'), который автоматически подгружает модули ядра. (Хм... Не знаю, какой дистрибутив взят за основу при описании, но в дистрибутивах RedHat, Mandrake, ALTLinux и ASPLinux загрузка модулей размещена в `/etc/rc.d/rc.sysinit' Прим.ред.)
в зависимости от уровня выполнения (указанного в `/etc/inittab'), init запускает все службы, указанные в соответствующем данному уровню каталоге. Например, если уровень выполнения равен 5, то выполняются все скрипты в каталоге `/etc/rc.d/rc5.d/'.
затем init запускает другой скрипт (обычно `/etc/rc.d/rc.local') . В нём пользователь может указать какие команды он хочет добавить в автозагрузку. Допустим, если вы захотите добавить в автозагрузку аудио-драйвер OSS, то можете сделать это здесь. А пользователи старых версий дистрибутивов Mandrake могут подредактировать этот файл чтобы избавиться от уродливого изображения пингвина при загрузке... (Чтобы убрать страшного текстового Тукса в приглашении системы, пользователи дистрибутивов ALT Linux должны удалить пакет welcome2l. Прим.ред.)
Конечно, всё это описано очень упрощённо, но, надеюсь, что основной смысл вы поняли. Если вы взгляните на скрипты в каталоге `/etc/rc.d/rc5.d' (или на любом другом уровне выполнения), то заметите, что все имена скриптов начинаются с букв S (что значит Start), или K (что значит Kill для остановки), за которыми следует цифра. Эта цифра определяет порядок запуска скрипта. Разные дистрибутивы запускают разный набор сервисов или демонов на этапе загрузки, и хотя они автоматически покрывают все потребности большинства пользователей, это также значит, что запускаются и некоторые ненужные процессы. А лишние процессы и приводят к долгой загрузке, недостатке памяти и возможным уязвимостям в системе. К счастью, процесс очистки загрузочного скрипта очень прост: самое трудное в нём это разобраться что есть что, и что именно вам не нужно. Для удобства ниже приведён перечень наиболее общих для всех систем сервисов с их кратким описанием. Также не забывайте какие именно изменения вы сделали, чтобы потом не гадать, какой же важный демон вы отключили... (список любезно предоставлен Стэном и Питером Клаймасом из их Руководства Администратора Линукс для новичков).
http://gazette.linux.ru.net/lg88/shekhar.html
ядро загружает свою внутреннюю структуру.
далее запускается процесс init.
init прочитывает файл `/etc/inittab'. В этом файле указан уровень выполнения системы (т.е. консольный, графический, однопользовательский...). Посмотрите сами файл `/etc/initab' и увидите, что происходит на разных уровнях выполнения.
потом init запускает скрипт (обычно `/etc/rc.d/rc.modules'), который автоматически подгружает модули ядра. (Хм... Не знаю, какой дистрибутив взят за основу при описании, но в дистрибутивах RedHat, Mandrake, ALTLinux и ASPLinux загрузка модулей размещена в `/etc/rc.d/rc.sysinit' Прим.ред.)
в зависимости от уровня выполнения (указанного в `/etc/inittab'), init запускает все службы, указанные в соответствующем данному уровню каталоге. Например, если уровень выполнения равен 5, то выполняются все скрипты в каталоге `/etc/rc.d/rc5.d/'.
затем init запускает другой скрипт (обычно `/etc/rc.d/rc.local') . В нём пользователь может указать какие команды он хочет добавить в автозагрузку. Допустим, если вы захотите добавить в автозагрузку аудио-драйвер OSS, то можете сделать это здесь. А пользователи старых версий дистрибутивов Mandrake могут подредактировать этот файл чтобы избавиться от уродливого изображения пингвина при загрузке... (Чтобы убрать страшного текстового Тукса в приглашении системы, пользователи дистрибутивов ALT Linux должны удалить пакет welcome2l. Прим.ред.)
Конечно, всё это описано очень упрощённо, но, надеюсь, что основной смысл вы поняли. Если вы взгляните на скрипты в каталоге `/etc/rc.d/rc5.d' (или на любом другом уровне выполнения), то заметите, что все имена скриптов начинаются с букв S (что значит Start), или K (что значит Kill для остановки), за которыми следует цифра. Эта цифра определяет порядок запуска скрипта. Разные дистрибутивы запускают разный набор сервисов или демонов на этапе загрузки, и хотя они автоматически покрывают все потребности большинства пользователей, это также значит, что запускаются и некоторые ненужные процессы. А лишние процессы и приводят к долгой загрузке, недостатке памяти и возможным уязвимостям в системе. К счастью, процесс очистки загрузочного скрипта очень прост: самое трудное в нём это разобраться что есть что, и что именно вам не нужно. Для удобства ниже приведён перечень наиболее общих для всех систем сервисов с их кратким описанием. Также не забывайте какие именно изменения вы сделали, чтобы потом не гадать, какой же важный демон вы отключили... (список любезно предоставлен Стэном и Питером Клаймасом из их Руководства Администратора Линукс для новичков).
http://gazette.linux.ru.net/lg88/shekhar.html
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
0xDEFEC8ED
0xDEFEC8ED
-
Uncle_Theodore
- Сообщения: 3339
- ОС: Slackware 12.2, ArchLinux 64
Re: Как написать сценарий
Он, кажется, ясно сказал, что хочет запускать и останавливать Апач по желанию, а не вместе с загрузкой системы. Нафига офтопик разводить? Что это за Авраам родил Иссака у Вас тут?
-
nesk
- Сообщения: 2268
- Статус: Линукссаксовец
- ОС: MS Windows XP Home SP3
Re: Как написать сценарий
да, глюк
пойду спать
пойду спать
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
0xDEFEC8ED
0xDEFEC8ED
-
csx
- Сообщения: 302
- Статус: Сыч Домовый
- ОС: Что сломалось, то и чиним...
Re: Как написать сценарий
patrik, в линуксе bat называются sh.
Все то же самое, просто набор команд.
Поищи в интернете про shell скрипты.
Все то же самое, просто набор команд.
Поищи в интернете про shell скрипты.
-- Как называется болезнь когда всё время по телефону разговариваешь?
-- Техподдержка...
-- Техподдержка...
-
TwisT
- Сообщения: 265
- ОС: Debian
Re: Как написать сценарий
Пошаговое руководство для начинающих:
1. Открываем свой любимый редактор, в КДЕ можна Kate
2.Создаем новый файл и пишем туда
3. Сохраняем как apache-start.sh
4. Создаем новый файл, и пишем в него
4. Сохраняем его как apache-stop.sh
5. Делаем наши скрипты исполняемыми
5. Делаем в КДЕ ссылочки на эти два файла,
для этого нужно кликануть правой кнопкой мыши
и найти соответствующий пункт в меню
6. Теперь можем кликать на ссылочки и управлять нашим апачем
P.S: Я уже давно Х-ов не видел, работа, живу в терминале, поэтому более точно сказать не могу
1. Открываем свой любимый редактор, в КДЕ можна Kate
2.Создаем новый файл и пишем туда
Код: Выделить всё
#!/bin/sh
sudo /etc/init.d/apache2 start3. Сохраняем как apache-start.sh
4. Создаем новый файл, и пишем в него
Код: Выделить всё
#!/bin/sh
sudo /etc/init.d/apache2 stop4. Сохраняем его как apache-stop.sh
5. Делаем наши скрипты исполняемыми
Код: Выделить всё
# chmod a+x apache-start.sh apache-stop.sh5. Делаем в КДЕ ссылочки на эти два файла,
для этого нужно кликануть правой кнопкой мыши
и найти соответствующий пункт в меню
6. Теперь можем кликать на ссылочки и управлять нашим апачем
P.S: Я уже давно Х-ов не видел, работа, живу в терминале, поэтому более точно сказать не могу
Linux user #432536.
-
TwisT
- Сообщения: 265
- ОС: Debian
Re: Как написать сценарий
Я тут внес изменения, в консоли:
Если с англицким грабли можно поставить русские маны или в инете надыбать.
Вообще, все зависит от настроек, которые указаны в конфигурационные файлах по умолчанию, у меня в Slackware ,например, вообще голяк. Для того чтобы пользоваться sudo пользователем который не является админом(т.е. root)
нужно отредактировать файл /etc/sudousers
для этого от root в консоли:
откроется файл в редакторе vi и неплохо бы знать, как работать с редактором vi или vim
В принципе в КДЕ можно любым открыть, главное от root
Дописываем следующее:
Это позволяет все пользователям из группы users выполнить команду
/bin/sh /etc/init.d/apache2 с любым параметром (например, start или stop), хотя
можно указать команду явно, например, вместо верхней строчки написать следущее
%users localhost=/bin/sh /etc/init.d/apache2 start,/bin/sh /etc/init.d/apache2 stop
Параметр localhost указывает, что нашу команду может выполнить пользователь
работающие непосредственно с компом, а работающий удаленно не сможет, если нужно управлять
апачем через ssh например нужно вместо localhost написать ALL, например:
Прекрасно, теперь нам осталось отредактировать наши скрипты
Не забудь сделать их исполняемыми. Я проделал все, но только для работы с sendmail, все прекрасно
работает.
Удачи!!!
Код: Выделить всё
#man sudoЕсли с англицким грабли можно поставить русские маны или в инете надыбать.
Вообще, все зависит от настроек, которые указаны в конфигурационные файлах по умолчанию, у меня в Slackware ,например, вообще голяк. Для того чтобы пользоваться sudo пользователем который не является админом(т.е. root)
нужно отредактировать файл /etc/sudousers
для этого от root в консоли:
Код: Выделить всё
#visudoоткроется файл в редакторе vi и неплохо бы знать, как работать с редактором vi или vim
В принципе в КДЕ можно любым открыть, главное от root
Дописываем следующее:
Код: Выделить всё
%users localhost=/bin/sh /etc/init.d/apache2 *Это позволяет все пользователям из группы users выполнить команду
/bin/sh /etc/init.d/apache2 с любым параметром (например, start или stop), хотя
можно указать команду явно, например, вместо верхней строчки написать следущее
%users localhost=/bin/sh /etc/init.d/apache2 start,/bin/sh /etc/init.d/apache2 stop
Параметр localhost указывает, что нашу команду может выполнить пользователь
работающие непосредственно с компом, а работающий удаленно не сможет, если нужно управлять
апачем через ssh например нужно вместо localhost написать ALL, например:
Код: Выделить всё
%users ALL=/bin/sh /etc/init.d/apache2 start,/bin/sh /etc/init.d/apache2 stopПрекрасно, теперь нам осталось отредактировать наши скрипты
Код: Выделить всё
1 Скрипт:
#!/bin/sh
sudo =/bin/sh /etc/init.d/apache2 start
2 Скрипт:
#!/bin/sh
sudo =/bin/sh /etc/init.d/apache2 stopНе забудь сделать их исполняемыми. Я проделал все, но только для работы с sendmail, все прекрасно
работает.
Удачи!!!
Linux user #432536.