summaryrefslogtreecommitdiff
path: root/doc/scriptmgr.txt
blob: d1353e9e399ccfde0e017041a48a590e9af3842c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
= scriptmgr(1) =

== NAME ==

scriptmgr - utility for controlling other skytools scripts.

== SYNOPSIS ==

  scriptmgr.py [switches] config.ini <command> [-a | -t service | job_name...]

== DESCRIPTION ==

scriptmgr is used to manage several scripts together.  It discovers
potential jobs based on config file glob expression.  From config file
it gets both job_name and service type (that is the main section name,
e.g. [cube_dispatcher]).  For each service type there is subsection
in the config how to handle it.  Unknown services are ignored.

== COMMANDS ==

=== status ===

  scriptmgr config.ini status

Show status for all known jobs.

=== start ===

  scriptmgr config.ini start -a
  scriptmgr config.ini start -t service
  scriptmgr config.ini start job_name1 job_name2 ...

Launch script(s) that are not running.

=== stop ===

  scriptmgr config.ini stop -a
  scriptmgr config.ini stop -t service
  scriptmgr config.ini stop job_name1 job_name2 ...

Stop script(s) that are running.

=== restart ===

  scriptmgr config.ini restart -a
  scriptmgr config.ini restart -t service
  scriptmgr config.ini restart job_name1 job_name2 ...

Restart scripts.

=== reload ===

  scriptmgr config.ini reload -a
  scriptmgr config.ini reload -t service
  scriptmgr config.ini reload job_name1 job_name2 ...

Send SIGHUP to scripts that are running.

== CONFIG ==

include::common.config.txt[]

=== scriptmgr parameters ===

config_list::
  List of glob patterns for finding config files.  Example:

    config_list = ~/dbscripts/conf/*.ini, ~/random/conf/*.ini

=== Service section parameters ===

cwd::
  Working directory for script.

args::
  Arguments to give to script, in addition to `-d`.

script::
  Path to script.  Unless script is in PATH, full path should be given.

disabled::
  If this service should be ignored.

user::
  Launch service as different unix user.  Scriptmgr uses `sudo`
  to switch users.  So it either needs to be run as root,
  or sudo config must allow it to launch daemons.

=== Example config file ===

  [scriptmgr]
  job_name        = scriptmgr_livesrv
  logfile         = ~/log/%(job_name)s.log
  pidfile         = ~/pid/%(job_name)s.pid

  config_list     = ~/scripts/conf/*.ini

  # defaults for all service sections
  [DEFAULT]
  cwd = ~/scripts

  [table_dispatcher]
  script = table_dispatcher.py
  args = -v

  [cube_dispatcher]
  script = python2.4 cube_dispatcher.py
  disabled = 1

  [pgqadm]
  script = ~/scripts/pgqadm.py
  args = ticker

== COMMAND LINE SWITCHES ==

include::common.switches.txt[]

Options specific to scriptmgr:

-a, --all::
  Operate on all non-disabled scripts.

-t 'service', --type='service'::
  Operate on all non-disabled scripts of this service type.

-w, --wait::
  Wait for script(s) after signalling.