Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Помогите с простеньким скриптом  (Прочитано 1262 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kofe88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Помогите с простеньким скриптом
« : 30 Декабря 2009, 13:02:30 »
У меня такая проблема, сервер по CS 1.6 иногда падает и иногда нет возможности его сразу запустить, вот решил написать простенький скрипт на проверку запущен ли процесс, и если нет, то чтобы он запустился :
#!/bin/bash
pkill -0 hlds_i686
if ["$?" == "1"]
then
echo "Starting HLDS..."
sleep 1
screen -A -m -d -S hlds ./hlds_i686 -console -game cstrike -maxplayers 16 +sv_lan 0 -master -insecure +ip 192.168.0.14 -port 27015 -pingboost 2
else
echo "HLDS already running..."
fi
Но столкнулся с проблемой, выдается сообщение об ошибке и условие сразу идет по else:
fedos@server02:~/csserver/server_nosteam$ sudo ./server.sh
./server.sh: line 3: [0: команда не найдена
HLDS already running...
Ктонибудь знает как можно решить эту проблему? :)

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6293
    • Просмотр профиля
Re: Помогите с простеньким скриптом
« Ответ #1 : 30 Декабря 2009, 13:40:02 »
Квадратную скобку пробелом отделить от внутренностей.

Оффлайн kofe88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Помогите с простеньким скриптом
« Ответ #2 : 30 Декабря 2009, 14:14:10 »
спасибо) помогло) есть еще вопрос, а как через кронтаб запускать от имени рута?)))

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: Помогите с простеньким скриптом
« Ответ #3 : 30 Декабря 2009, 14:19:35 »
спасибо) помогло) есть еще вопрос, а как через кронтаб запускать от имени рута?)))
То, что запускается из /etc/crontab, работает от рута.
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Помогите с простеньким скриптом
« Ответ #4 : 30 Декабря 2009, 15:54:09 »
То, что запускается из /etc/crontab, работает от рута.
Неа. Работает от того пользователя, который указан в задании.

Оффлайн kofe88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Помогите с простеньким скриптом
« Ответ #5 : 30 Декабря 2009, 19:26:27 »
а как указать что этот пользователь рут?

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Помогите с простеньким скриптом
« Ответ #6 : 30 Декабря 2009, 19:29:58 »
Какого укажешь, такой и будет. man 5 crontab

Оффлайн kofe88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Помогите с простеньким скриптом
« Ответ #7 : 30 Декабря 2009, 23:12:55 »
В /etc/crontab я прописал
* * * * * root /home/fedos/csserver/server_nosteam/server.sh
текст скрипта такой
#!/bin/bash
pkill -0 hlds_i686
if [ "$?" == "1" ]
then
echo "Starting HLDS..."
sleep 1
screen -A -m -d -S hlds /home/fedos/csserver/server_nosteam/hlds_i686 -console -game cstrike -maxplayers 16 +sv_lan 0 -master -insecure +ip 192.168.0.14 -port 27015 -pingboost 2
else
echo "HLDS already running..."
fi
но почему то не выполняется, что-то опять не так? сорри если туплю, просто первый раз имею дело с написанием скриптов(

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Помогите с простеньким скриптом
« Ответ #8 : 31 Декабря 2009, 00:08:44 »
chmod +x /home/fedos/csserver/server_nosteam/server.shИ пустая строка в конце crontab.

Оффлайн kofe88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Помогите с простеньким скриптом
« Ответ #9 : 31 Декабря 2009, 00:56:52 »
Все равно не догоняю что не так, эти права я задал скрипту, вручную он запускается нормально, а вот через кронтаб не пашет, вот полное содержание файла /etc/crontab :
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
* * * * * root /home/fedos/csserver/server_nosteam/server.sh

пустая строчка в конце есть, может что-то еще где-то надо дописать?
может у команды screen какие-то не те параметры?
#!/bin/bash
pkill -0 hlds_i686
if [ "$?" == "1" ]
then
echo "Starting HLDS..."
sleep 1
screen -A -m -d -S hlds /home/fedos/csserver/server_nosteam/hlds_i686 -console -game cstrike -maxplayers 16 +sv_lan 0 -master -insecure +ip 192.168.0.14 -port 27015 -pingboost 2
else
echo "HLDS already running..."
fi
« Последнее редактирование: 31 Декабря 2009, 00:59:18 от kofe88 »

 

Страница сгенерирована за 0.038 секунд. Запросов: 26.