Just to let you know I got it all working Jesse, thanks a million for
your help, it's really appreciated.

I've based my solution on your example but my way is much less
advanced, more stupider I'd say :-)

Thanks again

Matt

2009/9/16 Matt Davies <[email protected]>:
> Hi Jesse
>
> You'll never guess, adding the log attribute has showed that there's a
> problem accessing the searchd.log file :-)
>
> Thanks so much, I haven't worked the fix out yet but it's a hell of a
> lot better than start command exited with non-zero code = 1
>
> Thanks again.
>
> Matt
>
> 2009/9/16 Jesse Newland <[email protected]>:
>>
>> I literally just finished setting this up, including using God to
>> manage the thinking_sphinx delayed_delta task. Here's how I have
>> things setup:
>>
>> http://gist.github.com/188053
>>
>> You might find it useful to set the 'log' attribute on a watch - any
>> output from the process started will be logged there. I bet you'll
>> find an error message in that log that leads you to the resolution of
>> your problem!
>>
>> Regards -
>>
>> Jesse Newland
>> ---
>> [email protected]
>> 404.216.1093
>>
>> On Sep 16, 2009, at 9:00 AM, Matt Davies wrote:
>>
>>>
>>> Another thing I've tried is adding the --pidfile switch to the searchd
>>> command and changing the name of the file from
>>> staging_production.sphinx.conf to production.sphinx.conf and all
>>> mentions of it in the config files
>>>
>>> still no dice :-(
>>>
>>> 2009/9/16 vanderkerkoff <[email protected]>:
>>>>
>>>> Hello everyone, I can't get god to start my TS and it's starting to
>>>> drive me a bit mad(madder).  I'm following Tims article here,
>>>> http://openmonkey.com/articles/2008/09/configuring-god-to-monitor-sphinxs-searchd
>>>> and having some problems.
>>>>
>>>> I've included all my config files and if anyone is nice(mad) enough
>>>> to
>>>> have a look through this for me I'd be eternally grateful.  I'm
>>>> emailing Tim as well to see if he can help, Tim, sorry mate.
>>>>
>>>> Symptoms
>>>>
>>>> I run a cap deploy, TS restarts and reindexes.
>>>>
>>>> I want god to monitor TS and restart it if it goes outside it's
>>>> memory
>>>> limits or if something 'mental' happens and searchd stops for some
>>>> reason.
>>>>
>>>> After deploying, I run sudo god log gaol-1 and it says that it's up.
>>>> I check ps aux | grep searchd, and it is.
>>>>
>>>> To test if god will restart I've tried two options.
>>>>
>>>> 1. sudo killall searchd
>>>>
>>>> searchd stops, god notices that it's stopped, but it fails to restart
>>>> it with the error start command exited with non-zero code = 1
>>>>
>>>> 2.  sudo god stop gaol-1
>>>>
>>>> searchd stops, god is now not monitoring it
>>>>
>>>> so I run sudo god start gaol-1 and it starts monitoring it, but never
>>>> starts searchd, error start command exited with non-zero code = 1
>>>>
>>>> The command it says it is trying to run, /usr/local/bin/searchd --
>>>> pidfile --config /var/www/rails/gaol/current/config/
>>>> staging_production.sphinx.conf, can be run from anywhere on the
>>>> system
>>>> when I'm logged into the system as the same user in the uid setting
>>>>
>>>> Here's the god watch
>>>>
>>>> God.watch do |w|
>>>>  w.group = "gaol-sphinx"
>>>>  w.name  = "gaol-1"
>>>>
>>>>  w.interval = 30.seconds
>>>>
>>>>  w.uid = "username"
>>>>  w.gid = "groupname"
>>>>
>>>>  w.start         = "searchd --config /var/www/rails/gaol/current/
>>>> config/staging_production.sphinx.conf"
>>>>  w.start_grace   = 10.seconds
>>>>  w.stop          = "searchd --config /var/www/rails/gaol/current/
>>>> config/staging_production.sphinx.conf --stop"
>>>>  w.stop_grace    = 10.seconds
>>>>  w.restart       = w.stop + " && " + w.start
>>>>  w.restart_grace = 15.seconds
>>>>
>>>>  w.pid_file = "/var/www/rails/gaol/shared/log/searchd.production.pid"
>>>>
>>>>  w.behavior(:clean_pid_file)
>>>>
>>>>  w.start_if do |start|
>>>>    start.condition(:process_running) do |c|
>>>>      c.interval  = 5.seconds
>>>>      c.running   = false
>>>>    end
>>>>  end
>>>>
>>>>  w.restart_if do |restart|
>>>>    restart.condition(:memory_usage) do |c|
>>>>      c.above = 100.megabytes
>>>>      c.times = [3, 5] # 3 out of 5 intervals
>>>>    end
>>>>  end
>>>>
>>>>  w.lifecycle do |on|
>>>>    on.condition(:flapping) do |c|
>>>>      c.to_state      = [:start, :restart]
>>>>      c.times         = 5
>>>>      c.within        = 5.minutes
>>>>      c.transition    = :unmonitored
>>>>      c.retry_in      = 10.minutes
>>>>      c.retry_times   = 5
>>>>      c.retry_within  = 2.hours
>>>>    end
>>>>  end
>>>> end
>>>>
>>>> Here's config/sphinx.yml
>>>>
>>>> production:
>>>>  bin_path: "/usr/local/bin"
>>>>  searchd_file_path: "/var/www/rails/gaol/shared/sphinx"
>>>>  config_file: "/var/www/rails/gaol/current/config/
>>>> staging_production.sphinx.conf"
>>>>  searchd_log_file: "/var/www/rails/gaol/shared/log/searchd.log"
>>>>  query_log_file: "/var/www/rails/gaol/shared/log/searchd.query.log"
>>>>  pid_file: "/var/www/rails/gaol/shared/log/searchd.production.pid"
>>>>
>>>>
>>>> Here's the static production.sphinx.conf file (we run the index
>>>> command with INDEX_ONLY=true)
>>>>
>>>> indexer
>>>> {
>>>> }
>>>>
>>>> searchd
>>>> {
>>>>  address = 127.0.0.1
>>>>  port = 3312
>>>>  pid_file = /var/www/rails/gaol/shared/log/searchd.production.pid
>>>> }
>>>>
>>>> source app_core_0
>>>> {
>>>>  type = mysql
>>>>  sql_host = sql database server
>>>>  sql_user = user
>>>>  sql_pass = password
>>>>  sql_db = database_name
>>>>  sql_sock = /var/run/mysqld/mysqld.sock
>>>>  sql_query_pre = SET NAMES utf8
>>>>  sql_query = SELECT `apps`.`id` * 1 + 0 AS `id` ,CAST
>>>> (`apps`.`given_names` AS CHAR) AS `given_names`,CAST(`apps`.`surname`
>>>> AS CHAR) AS `surname`,CAST(`apps`.`date_of_birth` AS CHAR) AS
>>>> `dob`,CAST(`apps`.`personalid` AS CHAR) AS `personalid`,CAST
>>>> (GROUP_CONCAT(DISTINCT `choices`.`decision` SEPARATOR ' ') AS CHAR)
>>>> AS
>>>> `decision`, CAST(GROUP_CONCAT(DISTINCT `courseinstances`.`entry_year`
>>>> SEPARATOR ' ') AS CHAR) AS `app_year`, CAST(GROUP_CONCAT(DISTINCT
>>>> `courses`.`facultycode_id` SEPARATOR ' ') AS CHAR) AS `faculty`, CAST
>>>> (GROUP_CONCAT(DISTINCT `courses`.`coursetitle` SEPARATOR ' ') AS
>>>> CHAR)
>>>> AS `Coursetitle`,CAST(`courses`.`campus` AS CHAR) AS
>>>> `campus`,`apps`.`id` AS `sphinx_internal_id`, 4045616687 AS
>>>> `class_crc`,'4045616687' AS `subclass_crcs`,0 AS
>>>> `sphinx_deleted`,IFNULL(`apps`.`given_names`, '') AS
>>>> `given_names_sort` FROM `apps` LEFT OUTER JOIN `choices` ON
>>>> choices.app_id = apps.id LEFT OUTER JOIN `courseinstances` ON
>>>> choices.courseinstance_id = courseinstances.id LEFT OUTER JOIN
>>>> `courses` ON courses.id = courseinstances.course_id WHERE `apps`.`id`
>>>>> = $start AND `apps`.`id` <= $end GROUP BY `apps`.`id`  ORDER BY NULL
>>>>  sql_query_range = SELECT IFNULL(MIN(`id`), 1), IFNULL(MAX(`id`), 1)
>>>> FROM `apps`
>>>>  sql_attr_uint = sphinx_internal_id
>>>>  sql_attr_uint = class_crc
>>>>  sql_attr_uint = sphinx_deleted
>>>>  sql_attr_str2ordinal = given_names_sort
>>>>  sql_attr_multi = uint subclass_crcs from field
>>>>  sql_query_info = SELECT * FROM `apps` WHERE `id` = (($id - 0) / 1)
>>>> }
>>>>
>>>> index app_core
>>>> {
>>>>  source = app_core_0
>>>>  path = /var/www/rails/gaol/shared/sphinx/app_core
>>>>  min_infix_len = 3
>>>>  enable_star = 1
>>>> }
>>>>
>>>> index app
>>>> {
>>>>  type = distributed
>>>>  local = app_core
>>>> }
>>>>
>>>> Here's the section of the cap deploy script that restarts sphinx on
>>>> deploy
>>>>
>>>> run "cd /var/www/rails/gaol/current; RAILS_ENV=production rake
>>>> thinking_sphinx:stop"
>>>> run "cd /var/www/rails/gaol/current; RAILS_ENV=production rake
>>>> thinking_sphinx:index INDEX_ONLY=true"
>>>> run "cd /var/www/rails/gaol/current; RAILS_ENV=production rake
>>>> thinking_sphinx:start"
>>>>>
>>>>
>>>
>>> >
>>
>>
>> >>
>>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"god.rb" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/god-rb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to