Make the default PID file compile-time settable (#12485)
#12391 offered to change the default PID file from /var/run/gitea.pid however in discussion it was decided that this could break users of older systems. An alternative was offered that we could make the PID file compile/link time settable. This PR does this, and changes the name of the setting from CustomPID to simply PIDFile. It also updates the from-source docs to show how to change the compiler settings to do this. Closes #12391 Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Florian Klink <flokli@flokli.de>
This commit is contained in:
parent
ee97e6a66a
commit
ac3cfad23d
7 changed files with 12 additions and 9 deletions
|
@ -41,7 +41,7 @@ and it takes care of all the other things for you`,
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "pid, P",
|
Name: "pid, P",
|
||||||
Value: "/var/run/gitea.pid",
|
Value: setting.PIDFile,
|
||||||
Usage: "Custom pid file path",
|
Usage: "Custom pid file path",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -110,7 +110,8 @@ func runWeb(ctx *cli.Context) error {
|
||||||
|
|
||||||
// Set pid file setting
|
// Set pid file setting
|
||||||
if ctx.IsSet("pid") {
|
if ctx.IsSet("pid") {
|
||||||
setting.CustomPID = ctx.String("pid")
|
setting.PIDFile = ctx.String("pid")
|
||||||
|
setting.WritePIDFile = true
|
||||||
}
|
}
|
||||||
|
|
||||||
// Perform global initialization
|
// Perform global initialization
|
||||||
|
|
|
@ -18,7 +18,7 @@ PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
|
||||||
DESC="Gitea - Git with a cup of tea"
|
DESC="Gitea - Git with a cup of tea"
|
||||||
NAME=gitea
|
NAME=gitea
|
||||||
SERVICEVERBOSE=yes
|
SERVICEVERBOSE=yes
|
||||||
PIDFILE=/var/run/$NAME.pid
|
PIDFILE=/run/$NAME.pid
|
||||||
SCRIPTNAME=/etc/init.d/$NAME
|
SCRIPTNAME=/etc/init.d/$NAME
|
||||||
WORKINGDIR=/var/lib/$NAME
|
WORKINGDIR=/var/lib/$NAME
|
||||||
DAEMON=/usr/local/bin/$NAME
|
DAEMON=/usr/local/bin/$NAME
|
||||||
|
|
|
@ -7,7 +7,7 @@ start_stop_daemon_args="--user ${USER} --chdir ${DIR}"
|
||||||
command="/usr/local/bin/gitea"
|
command="/usr/local/bin/gitea"
|
||||||
command_args="web -c /etc/gitea/app.ini"
|
command_args="web -c /etc/gitea/app.ini"
|
||||||
command_background=yes
|
command_background=yes
|
||||||
pidfile=/var/run/gitea.pid
|
pidfile=/run/gitea.pid
|
||||||
|
|
||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
|
|
|
@ -93,7 +93,7 @@ case "$1" in
|
||||||
|
|
||||||
# Return value is slightly different for the status command:
|
# Return value is slightly different for the status command:
|
||||||
# 0 - service up and running
|
# 0 - service up and running
|
||||||
# 1 - service dead, but /var/run/ pid file exists
|
# 1 - service dead, but /run/ pid file exists
|
||||||
# 2 - service dead, but /var/lock/ lock file exists
|
# 2 - service dead, but /var/lock/ lock file exists
|
||||||
# 3 - service not running (unused)
|
# 3 - service not running (unused)
|
||||||
# 4 - service status unknown :-(
|
# 4 - service status unknown :-(
|
||||||
|
|
|
@ -155,6 +155,7 @@ using the `LDFLAGS` environment variable for `make`. The appropriate settings ar
|
||||||
* For `CustomConf` you should use `-X \"code.gitea.io/gitea/modules/setting.CustomConf=conf.ini\"`
|
* For `CustomConf` you should use `-X \"code.gitea.io/gitea/modules/setting.CustomConf=conf.ini\"`
|
||||||
* For `AppWorkPath` you should use `-X \"code.gitea.io/gitea/modules/setting.AppWorkPath=working-path\"`
|
* For `AppWorkPath` you should use `-X \"code.gitea.io/gitea/modules/setting.AppWorkPath=working-path\"`
|
||||||
* For `StaticRootPath` you should use `-X \"code.gitea.io/gitea/modules/setting.StaticRootPath=static-root-path\"`
|
* For `StaticRootPath` you should use `-X \"code.gitea.io/gitea/modules/setting.StaticRootPath=static-root-path\"`
|
||||||
|
* To change the default PID file location use `-X \"code.gitea.io/gitea/modules/setting.PIDFile=/run/gitea.pid\"`
|
||||||
|
|
||||||
Add as many of the strings with their preceding `-X` to the `LDFLAGS` variable and run `make build`
|
Add as many of the strings with their preceding `-X` to the `LDFLAGS` variable and run `make build`
|
||||||
with the appropriate `TAGS` as above.
|
with the appropriate `TAGS` as above.
|
||||||
|
|
|
@ -44,7 +44,7 @@ Starts the server:
|
||||||
- Examples:
|
- Examples:
|
||||||
- `gitea web`
|
- `gitea web`
|
||||||
- `gitea web --port 80`
|
- `gitea web --port 80`
|
||||||
- `gitea web --config /etc/gitea.ini --pid /var/run/gitea.pid`
|
- `gitea web --config /etc/gitea.ini --pid /some/custom/gitea.pid`
|
||||||
- Notes:
|
- Notes:
|
||||||
- Gitea should not be run as root. To bind to a port below 1024, you can use setcap on
|
- Gitea should not be run as root. To bind to a port below 1024, you can use setcap on
|
||||||
Linux: `sudo setcap 'cap_net_bind_service=+ep' /path/to/gitea`. This will need to be
|
Linux: `sudo setcap 'cap_net_bind_service=+ep' /path/to/gitea`. This will need to be
|
||||||
|
|
|
@ -382,7 +382,8 @@ var (
|
||||||
Cfg *ini.File
|
Cfg *ini.File
|
||||||
CustomPath string // Custom directory path
|
CustomPath string // Custom directory path
|
||||||
CustomConf string
|
CustomConf string
|
||||||
CustomPID string
|
PIDFile = "/var/run/gitea.pid"
|
||||||
|
WritePIDFile bool
|
||||||
ProdMode bool
|
ProdMode bool
|
||||||
RunUser string
|
RunUser string
|
||||||
IsWindows bool
|
IsWindows bool
|
||||||
|
@ -535,8 +536,8 @@ func SetCustomPathAndConf(providedCustom, providedConf, providedWorkPath string)
|
||||||
func NewContext() {
|
func NewContext() {
|
||||||
Cfg = ini.Empty()
|
Cfg = ini.Empty()
|
||||||
|
|
||||||
if len(CustomPID) > 0 {
|
if WritePIDFile && len(PIDFile) > 0 {
|
||||||
createPIDFile(CustomPID)
|
createPIDFile(PIDFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
if com.IsFile(CustomConf) {
|
if com.IsFile(CustomConf) {
|
||||||
|
|
Reference in a new issue