aboutsummaryrefslogtreecommitdiff
path: root/src/os/unix/ngx_process.c
Commit message (Collapse)AuthorAge
* Fixed "changing binary" when reaper is not init.Ruslan Ermilov2017-11-28
| | | | | | | | | On some systems, it's possible that reaper of orphaned processes is set to something other than "init" process. On such systems, the changing binary procedure did not work. The fix is to check if PPID has changed, instead of assuming it's always 1 for orphaned processes.
* Added missing "fall through" comments (ticket #1259).Maxim Dounin2017-04-27
| | | | Found by gcc7 (-Wimplicit-fallthrough).
* Core: signal sender pid logging.Igor Sysoev2017-04-20
|
* Added missing "static" specifier found by gcc -Wtraditional.Ruslan Ermilov2017-03-16
| | | | This has somehow escaped from fbdaad9b0e7b.
* Fixed ngx_os_signal_process() prototype.Ruslan Ermilov2016-03-31
|
* Fixed ngx_pid_t formatting in ngx_sprintf() and logging.Sergey Kandaurov2016-03-31
|
* Valgrind: sigaction() failure now ignored.Maxim Dounin2013-06-05
| | | | | | Valgrind intercepts SIGUSR2 in some cases, and nginx might not be able to start due to sigaction() failure. If compiled with NGX_VALGRIND defined, we now ignore the failure of sigaction().
* Removed conditional compilation from waitpid() error test.Maxim Dounin2012-10-18
| | | | | | There are reports that call to a signal handler for an exited process despite waitpid() already called for the process may happen on Linux as well.
* Whitespace fixes.Maxim Dounin2012-03-05
|
* Copyright updated.Maxim Konovalov2012-01-18
|
* Added (void) as we intentionally ignore returned values.Maxim Dounin2011-11-28
| | | | Requested by Igor Sysoev.
* Unlock of shared memory zones on process crash.Maxim Dounin2011-11-23
| | | | | | | | If process exited abnormally while holding lock on some shared memory zone - unlock it. It may be not safe thing to do (as crash with lock held may result in corrupted shared memory structure, and other processes will subsequently crash while trying to access shared data), therefore complain loudly if unlock succeeds.
* Added shmtx interface to forcibly unlock mutexes.Maxim Dounin2011-11-23
| | | | | | | | | | | It is currently used from master process on abnormal worker termination to unlock accept mutex (unlocking of accept mutex was broken in 1.0.2). It is expected to be used in the future to unlock other mutexes as well. Shared mutex code was rewritten to make this possible in a safe way, i.e. with a check if lock was actually held by the exited process. We again use pid to lock mutex, and use separate atomic variable for a count of processes waiting in sem_wait().
* Replaced "can not" with "cannot" and "could not" in a bunch of places.Ruslan Ermilov2011-09-19
| | | | Fixed nearby grammar errors.
* SIGWINCH/NOACCEPT signal is disabled now in non-daemon mode.Igor Sysoev2011-08-22
| | | | | | | Non-daemon mode is currently used by supervisord, daemontools and so on or during debugging. The NOACCEPT signal is only used for online upgrade which is not supported when nginx is run under supervisord, etc., so this change should not break existant setups.
* use copied strerror() messages and autoconfigured sys_nerr valueIgor Sysoev2010-11-25
|
* style fixIgor Sysoev2010-07-08
|
* *) introduce ngx_time_sigsafe_update() to update the error log time onlyIgor Sysoev2010-03-25
| | | | *) change ngx_time_update() interface
* *) use previously cached GMT offset value to update time from a signal handlerIgor Sysoev2010-03-13
| | | | | *) change ngx_time_update() interface since there are no notification methods those return time
* use sys_errlist[] in signal handler insteadIgor Sysoev2010-03-12
| | | | of non Async-Signal-Safe strerror_r()
* add NGX_PROCESS_HELPER process statusIgor Sysoev2009-11-23
|
* twice termination delay only after SIGALRM, otherwise many separate SIGCHLDIgor Sysoev2009-08-26
| | | | and SIGIO signals quickly increase delay to the level when SIGKILL is sent
* ignore SIGSYSIgor Sysoev2009-08-26
|
* introduce NGX_PROCESS_JUST_SPAWN and change field name accordinglyIgor Sysoev2009-08-10
|
* implement "-s signal" option for UnixIgor Sysoev2009-04-21
|
* AIX has no WCOREDUMP()Igor Sysoev2009-02-05
|
* grammar fixIgor Sysoev2008-04-09
|
* lower the log level of the waitpid() ENOCHILD error on FreeBSDIgor Sysoev2006-12-23
|
* fix typoIgor Sysoev2006-09-16
|
* nginx-0.3.3-RELEASE importrelease-0.3.3Igor Sysoev2005-10-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | *) Change: the "bl" and "af" parameters of the "listen" directive was renamed to the "backlog" and "accept_filter". *) Feature: the "rcvbuf" and "sndbuf" parameters of the "listen" directive. *) Change: the "$msec" log parameter does not require now the additional the gettimeofday() system call. *) Feature: the -t switch now tests the "listen" directives. *) Bugfix: if the invalid address was specified in the "listen" directive, then after the -HUP signal nginx left an open socket in the CLOSED state. *) Bugfix: the mime type may be incorrectly set to default value for index file with variable in the name; the bug had appeared in 0.3.0. *) Feature: the "timer_resolution" directive. *) Feature: the millisecond "$upstream_response_time" log parameter. *) Bugfix: a temporary file with client request body now is removed just after the response header was transferred to a client. *) Bugfix: OpenSSL 0.9.6 compatibility. *) Bugfix: the SSL certificate and key file paths could not be relative. *) Bugfix: the "ssl_prefer_server_ciphers" directive did not work in the ngx_imap_ssl_module. *) Bugfix: the "ssl_protocols" directive allowed to specify the single protocol only.
* nginx-0.3.0-RELEASE importrelease-0.3.0Igor Sysoev2005-10-07
| | | | | | *) Change: the 10-days live time limit of worker process was eliminated. The limit was introduced because of millisecond timers overflow.
* nginx-0.2.0-RELEASE importrelease-0.2.0Igor Sysoev2005-09-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | *) The pid-file names used during online upgrade was changed and now is not required a manual rename operation. The old master process adds the ".oldbin" suffix to its pid-file and executes a new binary file. The new master process creates usual pid-file without the ".newbin" suffix. If the master process exits, then old master process renames back its pid-file with the ".oldbin" suffix to the pid-file without suffix. *) Change: the "worker_connections" directive, new name of the "connections" directive; now the directive specifies maximum number of connections, but not maximum socket descriptor number. *) Feature: SSL supports the session cache inside one worker process. *) Feature: the "satisfy_any" directive. *) Change: the ngx_http_access_module and ngx_http_auth_basic_module do not run for subrequests. *) Feature: the "worker_rlimit_nofile" and "worker_rlimit_sigpending" directives. *) Bugfix: if all backend using in load-balancing failed after one error, then nginx did not try do connect to them during 60 seconds. *) Bugfix: in IMAP/POP3 command argument parsing. Thanks to Rob Mueller. *) Bugfix: errors while using SSL in IMAP/POP3 proxy. *) Bugfix: errors while using SSI and gzipping. *) Bugfix: the "Expires" and "Cache-Control" header lines were omitted from the 304 responses. Thanks to Alexandr Kukushkin.
* nginx-0.1.44-RELEASE importrelease-0.1.44Igor Sysoev2005-09-06
| | | | | | | | | | | *) Feature: the IMAP/POP3 proxy supports SSL. *) Feature: the "proxy_timeout" directive of the ngx_imap_proxy_module. *) Feature: the "userid_mark" directive. *) Feature: the $remote_user variable value is determined independently of authorization use.
* nginx-0.1.32-RELEASE importrelease-0.1.32Igor Sysoev2005-05-19
| | | | | | | | | | | | | | *) Bugfix: the arguments were omitted in the redirects, issued by the "rewrite" directive; the bug had appeared in 0.1.29. *) Feature: the "if" directive supports the captures in regular expressions. *) Feature: the "set" directive supports the variables and the captures of regular expressions. *) Feature: the "X-Accel-Redirect" response header line is supported in proxy and FastCGI mode.
* nginx-0.1.25-RELEASE importrelease-0.1.25Igor Sysoev2005-03-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | *) Bugfix: nginx did run on Linux parisc. *) Feature: nginx now does not start under FreeBSD if the sysctl kern.ipc.somaxconn value is too big. *) Bugfix: if a request was internally redirected by the ngx_http_index_module module to the ngx_http_proxy_module or ngx_http_fastcgi_module modules, then the index file was not closed after request completion. *) Feature: the "proxy_pass" can be used in location with regular expression. *) Feature: the ngx_http_rewrite_filter_module module supports the condition like "if ($HTTP_USER_AGENT ~ MSIE)". *) Bugfix: nginx started too slow if the large number of addresses and text values were used in the "geo" directive. *) Change: a variable name must be declared as "$name" in the "geo" directive. The previous variant without "$" is still supported, but will be removed soon. *) Feature: the "%{VARIABLE}v" logging parameter. *) Feature: the "set $name value" directive. *) Bugfix: gcc 4.0 compatibility. *) Feature: the --with-openssl-opt=OPTIONS autoconfiguration directive.
* nginx-0.1.13-RELEASE importrelease-0.1.13Igor Sysoev2004-12-21
| | | | | | | | | | | *) Feature: the server_names_hash and server_names_hash_threshold directives. *) Bugfix: the *.domain.tld names in the "server_name" directive did not work. *) Bugfix: the %request_length log parameter logged the incorrect length.
* nginx-0.1.5-RELEASE importrelease-0.1.5Igor Sysoev2004-11-11
| | | | | | | | | | | | | | | | | | | | | | | | *) Bugfix: on Solaris and Linux there may be too many "recvmsg() returned not enough data" alerts. *) Bugfix: there were the "writev() failed (22: Invalid argument)" errors on Solaris in proxy mode without sendfile. On other platforms that do not support sendfile at all the process got caught in an endless loop. *) Bugfix: segmentation fault on Solaris in proxy mode and using sendfile. *) Bugfix: segmentation fault on Solaris. *) Bugfix: on-line upgrade did not work on Linux. *) Bugfix: the ngx_http_autoindex_module module did not escape the spaces, the quotes, and the percent signs in the directory listing. *) Change: the decrease of the copy operations. *) Feature: the userid_p3p directive.
* nginx-0.1.2-RELEASE importrelease-0.1.2Igor Sysoev2004-10-21
| | | | | | | | | | | | | | | | | | | | | | | *) Feature: the --user=USER, --group=GROUP, and --with-ld-opt=OPTIONS options in configure. *) Feature: the server_name directive supports *.domain.tld. *) Bugfix: the portability improvements. *) Bugfix: if configuration file was set in command line, the reconfiguration was impossible; the bug had appeared in 0.1.1. *) Bugfix: proxy module may get caught in an endless loop when sendfile is not used. *) Bugfix: with sendfile the response was not recoded according to the charset module directives; the bug had appeared in 0.1.1. *) Bugfix: very seldom bug in the kqueue processing. *) Bugfix: the gzip module compressed the proxied responses that was already compressed.
* nginx-0.1.1-RELEASE importrelease-0.1.1Igor Sysoev2004-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | *) Feature: the gzip_types directive. *) Feature: the tcp_nodelay directive. *) Feature: the send_lowat directive is working not only on OSes that support kqueue NOTE_LOWAT, but also on OSes that support SO_SNDLOWAT. *) Feature: the setproctitle() emulation for Linux and Solaris. *) Bugfix: the "Location" header rewrite bug fixed while the proxying. *) Bugfix: the ngx_http_chunked_module module may get caught in an endless loop. *) Bugfix: the /dev/poll module bugs fixed. *) Bugfix: the responses were corrupted when the temporary files were used while the proxying. *) Bugfix: the unescaped requests were passed to the backend. *) Bugfix: while the build configuration on Linux 2.4 the --with-poll_module parameter was required.
* nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyrightIgor Sysoev2004-09-29
|
* nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused filesIgor Sysoev2004-09-28
|
* nginx-0.0.7-2004-07-14-20:01:42 importIgor Sysoev2004-07-14
|
* nginx-0.0.7-2004-07-13-21:59:12 importIgor Sysoev2004-07-13
|
* nginx-0.0.7-2004-06-23-19:18:17 importIgor Sysoev2004-06-23
|
* nginx-0.0.7-2004-06-23-09:54:27 importIgor Sysoev2004-06-23
|
* nginx-0.0.7-2004-06-18-20:22:16 importIgor Sysoev2004-06-18
|
* nginx-0.0.7-2004-06-15-21:47:16 importIgor Sysoev2004-06-15
|
* nginx-0.0.7-2004-06-15-11:55:11 importIgor Sysoev2004-06-15
|
* nginx-0.0.3-2004-04-16-09:14:16 importIgor Sysoev2004-04-16
|
* nginx-0.0.3-2004-04-05-00:32:09 importIgor Sysoev2004-04-04
|