![]() |
Скрипт в UNIX
А можно написать скрипт на PHP и чтобы он работал всегда на сервере? И как его запустить там? :idontnow:
|
В каком смысле всегда? можно реализовать запуск по расписанию через cron
|
нет, нужно чтобы он постоянно работал.
|
rtfm: set_time_limit
|
А как вообще запустить php скрипт с сервера без IE, из командной строки, можно такое???
|
опять же - rtfm: http://www.php.net/manual/en/features.commandline.php
|
попросту говоря php <твой скрипт>
|
А в бэкграунде его можно запустить? Если в скрипте бесконечный цикл, то после php <мой скрипт> он виснет...
|
php <твой скрипт>&
|
Такая проблема, я запускаю php <мой скрипт> и все нормально работает, но когда я завершаю сессию в Putty и скрипт перестает работать, как сделать так, чтобы он так и висел? Или чтобы его можно было запустить с HTML странички...? :help:
|
nohup <комманда> &
PS: man nohup |
Код:
/usr/local/bin/php /var/www/html/site/index.php |
А чтобы он запускался в автозагрузке можно сделать? Если просто как вы пишете, то при автозагрузке он не запускается... :( :help:
|
В автозагрузку добавляет только адмнистратор. Используй crontab
|
Я могу добавить в автозагрузку, и в crontab добавлял, только не исполняется он... висит в процессах, а скрипт даже первую строчку своего кода не исполняет, а если из консоли делаю, то всё работает... :( :(
|
Скрипт в студию.
|
Он большой, и в Unix, т.е. нужно еще символы конца строки ставить... :(
Там кроме функций открытия файла, записи в него, закрытия и простых арифметических операций ничего нет. Еще есть exec(), может из-за него неработает? Сам скрипт сто процентов рабочий - ведь он корректно работает при запуске просто, из командной строки Linux'а... :confused: |
Приатач. Выложи. Гадать на кофейной гуще чтоли...
|
Вложений: 1
Ну вот он, файл :)
|
Да. Там без поллитры не разобраться. Первое что можно подозревать - данные не записываются в файл потому что не хватает прав. Сделай на папку и все файлы chmod 777.
PS: А чего ты хотел добиться этим?: if ($date<=date('Y-m-d H:i:s')){ |
Цитата:
Если бы не хватало прав, то он бы не работал вообще, а так, я же его запускаю "php <мой скрипт>&" и он исправно работает, а когда тоже самое пишу в crontab или автозагрузку, то не работает... Скорее всего это php не может запустить скрипт не из консоли, а так...:( придется переделывать на Perl...заодно и язык новый узнаю :p |
Если не выполняется именно по крону - для начала попробуй прописать все пути к файлам в абсолютной форме, в т.ч. те что у тебя в fopen, exec и где еще есть. Т.е. в начале пишем
$basePath = "/home/blabla/"; А далее соотв fopen ($basePath."con.sim", "r") итд А вообще - "переделывать на Perl" - самое правильное решение. По определению :) |
Цитата:
Цитата:
Цитата:
|
Тогда еще один вопрос:
Как на Perl осуществить чтение файла (не один символ, а целую строку) и запись в файл (вот с этим никак не разобраться...) :help: |
И еще, как в Perl'е дату получить (и время) :help:
|
Значит так, пробуем так:
В скрипт первой (!) строчкой добавляем Код:
#!/usr/local/bin/php -qПоидее должен работать также как из шела. А, ну и конечно, либо устанавливаем в окружении используемый текущий каталог, либо прописываем полные пути для всех файлов используемых любым образом в скрипте, как уже правильно сказали выше. Цитата:
Скорее уж действительно как RaZEr говорит, хотя лично мне больше нравится bash, но это уже мелочи :beer: |
КАК в этом "классном" Perl'е сравнить две строки??? :help: :help:
|
|
Да уж, а я маленькую подпрограмму написал... :p Спасибо за хорошую книжку (а то на русском ничего толкового нет, а на английском я не додумался поискать :( )
|
Цитата:
|
Да вот вроде из этих русских книг хороших я не нашел...
Кстати, я нашел баг в PHP, если интересно, то он просто текущую директорию свою не знал и писал в корень, я теперь просто ко всем файлам пути полные прописал как мне и советовали... :cool: |
Цитата:
|
А не подскажешь все-таки как дату получить в Perl. Я использую gmtime(time), но оно что-то мне не тот месяц выдает... и время какое-то странное, если не ошибаюсь, то у нас опережение Гринвича на 3 часа, а gmtime говорит, что на 4... :( :help:
|
Набери date. Если показывает не то время, значит на сервере оно просто не настроено.
|
Если набираю date, то время показывает правильное время, а если gmtime(time), то какую-то ерунду :(
|
localtime
|
Все правдивое, а номер месяца 5, а сейчас вроде 6, и date показывает, что июнь... :confused:
|
Возможно месяцы нумеруются от 0 до 11.
|
ну может, тогда все верно будет...
|
Меня когда-то вполне устроила Cookbook by O'Reilly, она и щас там - http://mirrors.usaaa.ru:8001/books/p...book/index.htm
Data/time соотв - http://mirrors.usaaa.ru:8001/books/p...ok/ch03_01.htm Вообще сравнивать даты как строки - идеологически ущербно (хоть и работает), RaZEr прав. Для этого пользуют Epoch seconds, оно-же "дата в Юникс-формате" RaZEr Hubbitus Виноват, sh имеет больше прав на место "по определению" :beer: |
| Часовой пояс GMT +4, время: 05:52. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.