Kim Alvefur
c2c82a10d3
mod_posix: Move everything to util.startup
...
This allows greater control over the order of events.
Notably, the internal ordering between daemonization, initialization of
libunbound and setup of signal handling is sensitive.
libunbound starts a separate thread for processing DNS requests.
If this thread is started before signal handling has been set up, it
will not inherit the signal handlers and instead behave as it would have
before signal handlers were set up, i.e. cause the whole process to
immediately exit.
libunbound is usually initialized on the first DNS request, usually
triggered by an outgoing s2s connection attempt.
If daemonization happens before signals have been set up, signals may
not be processed at all.
2 years ago
Kim Alvefur
3036a689fa
mod_posix: Move POSIX signal handling into util.startup to avoid race
...
When libunbound is initialized, it spawns a thread to work in.
In case a module initializes libunbound, e.g. by triggering a s2s
connection, Prosody would not handle signals, instead immediately quit
on e.g. the reload (SIGHUP) signal. Likely because the libunbound thread
would not have inherited the signal mask from the main Prosody thread.
Thanks Menel, riau and franck-x for reporting and help narrowing down
2 years ago
Kim Alvefur
89f110bbf2
mod_posix: Run signal handlers in the startup thread
4 years ago
Kim Alvefur
98922d54b1
plugins: Prefix module imports with prosody namespace
3 years ago
Matthew Wild
4167f630b8
mod_posix: Support for command-line flags to override 'daemonize' config option
...
-D / --daemonize
-F / --no-daemonize
6 years ago
Kim Alvefur
bd8604331f
mod_posix: Exit with non-zero status code on problems
...
Previously it would default to exit with 0 as status code, meaning
success, which is weird.
4 years ago
Matthew Wild
8f059290a7
mod_posix: Hook and fire events on SIGUSR1/2
5 years ago
Kim Alvefur
33e7e5ef2d
mod_posix: Daemonize later
...
Daemonizing later means we can use that as a "successful startup"
signal and problems can be reported via exit code.
5 years ago
Kim Alvefur
f25f4bb11a
mod_posix: Remove ancient undocumented user switching
...
User switching has been done by prosodyctl or init scripts for a very
long time now, so this is not needed.
Using this would not have worked with module reloading (e.g. to reload
certificates) since ports are closed and re-bound, which would then not
be allowed.
Today there exists better ways to grant low ports, i.e. capabilities(7)
<Zash> Why do we have this?
<MattJ> Remove it
5 years ago
Kim Alvefur
a0dffb53e1
mod_posix: Add deprecation warning for the 'daemonize' option
6 years ago
Kim Alvefur
1e9a016034
mod_posix: Don't reload logging twice
...
See 18eca6afb367
7 years ago
Kim Alvefur
35717a1e41
loggingmanager, mod_posix: Import util.format correctly ( fixes #985 )
8 years ago
Waqas Hussain
00cb31f022
loggingmanager, mod_posix: Replace the old inconsistent log formatting with the new util.format
8 years ago
Kim Alvefur
14f5606da9
mod_posix: Ignore currently unused argument [luacheck]
9 years ago
Kim Alvefur
547eeb1267
mod_posix: Split long line [luacheck]
9 years ago
Kim Alvefur
b9401b9307
mod_posix: Use typed config API
9 years ago
Matthew Wild
e263a34414
mod_posix: Delay setting signal handlers until in the main thread
...
Signal handlers work by setting a debug hook. Hooks are per-thread, so we need this to be called in the main thread. However module loading is not in the main thread anymore.
8 years ago
Kim Alvefur
593b5348ef
mod_posix: Use path variant of config API for pidfile option
9 years ago
Kim Alvefur
d6184b31a3
util.pposix: Remove fallocate
9 years ago
Kim Alvefur
e8b57d789b
util.pposix: Add function for atomically appending data to a file
9 years ago
Kim Alvefur
fdf2a552ce
mod_posix: Use type-specific config API
9 years ago
Emmanuel Gil Peyrot
c6048a7cb4
Update every link to the documentation to use HTTPS
10 years ago
Kim Alvefur
36b5ae5e24
mod_posix: Detect failure to load util.signal by first pcall return value not by type of the second
10 years ago
Kim Alvefur
b456d66edb
mod_posix: Normalize indentation
10 years ago
Kim Alvefur
d431f7e1ec
mod_posix: Make sure that 'pidfile' is a string
12 years ago
Kim Alvefur
bd5c779391
mod_posix: Remove compat code for 0.5
12 years ago
Kim Alvefur
4896e7ca7e
mod_posix: Daemonize by default only when installed
12 years ago
Florian Zeitz
1d833bb807
Remove all trailing whitespace
13 years ago
Matthew Wild
0ce5c766ac
mod_posix: Improve error message for a pposix version mismatch
13 years ago
Matthew Wild
f1adfcc147
mod_posix, util.pposix: Bump version for API change
13 years ago
Matthew Wild
43e7ad6680
mod_posix: Pass logger name to syslog, so that sources now get logged
13 years ago
Kim Alvefur
8f3a73f5c5
mod_posix: Log a message explaining that we are detaching from the console
13 years ago
Kim Alvefur
37ba438ad9
mod_posix: Remove console and stdout logging sinks before daemonizing
13 years ago
Matthew Wild
28322869e8
mod_posix: Remove unnecessary import of util.format (thanks luacheck and buildbot)
7 years ago
Matthew Wild
2ab785fd9f
loggingmanager, mod_posix: Move syslog to core, fixes #541 (in a way)
7 years ago
Matthew Wild
e89b006f03
Hopefully inert commit to clean up logging across a number of modules, removing all cases of concatenation when building log messages
14 years ago
Matthew Wild
0502e8bcec
mod_posix: Support syslog_facility config option
14 years ago
Kim Alvefur
3c2e464d58
mod_posix, mod_bosh, mod_admin_telnet: Use module:set_global()
14 years ago
Matthew Wild
7ef9dad636
mod_posix: Remove redundant import of logger.setwriter()
15 years ago
Waqas Hussain
b7e51a203d
Monster whitespace commit (beware the whitespace monster).
15 years ago
Waqas Hussain
e981541bc4
mod_posix: Updated to use the new events API.
15 years ago
Matthew Wild
50b20f4af4
util.pposix: Add pposix.uname(), bump version
16 years ago
Matthew Wild
b465aa90b9
util.pposix, prosodyctl, mod_posix: Add initgroups() function, and bump module version. prosodyctl inits groups with the groups of prosody_user. (thanks dbb)
16 years ago
Matthew Wild
b96ba1e82d
mod_posix: Some (perhaps temporary) changes to re-lock the pidfile after truncating, to avoid breaking prosodyctl
16 years ago
Brian Cully
d77e181372
mod_posix: Truncate the pidfile before writing to ensure that we never overwrite with a PID shorter than the previous, and end with an invalid PID in the file.
16 years ago
Waqas Hussain
4e7390dbf9
mod_posix: Fixed a global access.
16 years ago
Waqas Hussain
2f333716e6
mod_posix: Don't add a server-starting event handler while the server-starting event is being fired.
16 years ago
Matthew Wild
2bc0606453
Update copyright headers for 2010
16 years ago
Matthew Wild
275444ab82
mod_posix: Adjust file open mode depending on whether file exists (take that fopen designers!!!)
16 years ago
Matthew Wild
40216063d2
mod_posix: Adjust file open mode depending on whether file exists (take that fopen designers!!!)
16 years ago