/usr/share/doc/needrestart/README.Interp.md is in needrestart 2.11-3+deb9u1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | needrestart - interpreter support
=================================
Needrestart checks running processes for using obsolete binaries. If no
obsolete binary was found needrestart scans for known interpreters.
There are special packages (NeedRestart::Interp::*) implementing the
source code file list extraction. The executable (/proc/<pid>/exec) is
used to detect the running interpreter.
Whenever source files where located their ctime values are retrieved. If
any of the source files has been changed after process creation time
a restart of the pid is triggered. This is no perfect valuation since
there are no inode information like for loaded binary objects nor has
needrestart any chance to get a verified list of sourced files..
NeedRestart::Interp::Java
-------------------------
Recognized binaries: /.+/bin/java
Find source file by: n/a
Try to detected loaded \.(class|jar) files by looking at open files. This
approach will not reliably detect loaded java files. Finding the original
command used to launch a java program is not that easy. Since there is no
shebang we will not find any data about the original command in /proc/$PID.
Running on systemd will allow us to find the service name due to the
cgroup name - seems to work for java daemons like tomcat6.
NeedRestart::Interp::Perl
-------------------------
Recognized binaries: /usr/(local/)?bin/perl
Find source file by: command line interpretation
We are using `Module::ScanDeps` to find used packages. This should work on
any static loaded packages, dynamic stuff will fail.
NeedRestart::Interp::Python
---------------------------
Recognized binaries: /usr/(local/)?bin/python.*
Find source file by: command line interpretation
The source file is scanned for 'import' and 'from' lines. All paths in
`sys.path` are scanned for the module files. This should work on any
static loaded modules.
NeedRestart::Interp::Ruby
-------------------------
Recognized binaries: /usr/(local/)?bin/ruby.*
Find source file by: command line interpretation
The source file is scanned for 'load' and 'require' lines. All paths in
`$:` are scanned for the module files. This should work on any
static loaded modules.
|