This PR fixes an issue where, after an unclean exit, Webmin can leave `miniserv.pid` behind. If the kernel later reuses that PID for an unrelated process, the startup guard only checked that the PID was alive and refused to start with “Webmin is already running”. With systemd restart handling, this can leave Webmin permanently down until the PID file is manually removed. This change verifies that the live PID actually belongs to `miniserv.pl` running the same config before treating it as an active Webmin instance. On Linux, it reads `/proc/<pid>/cmdline`, checks the miniserv script, and compares the config file by inode so symlinked paths still match and Usermin is correctly distinguished. If the PID is confirmed unrelated, the stale PID file is removed and startup continues. If the process cannot be inspected, the previous conservative behavior is preserved. Also hardens PID-file parsing with chomp and numeric validation, and adds tests for unrelated PID reuse, matching config, symlinked config, different miniserv config, and unreadable command-line fallback.
Documentation | FAQ | Security | Screenshots | Forum
About
Webmin is a web-based system administration tool for Unix-like servers, and services with about 1,000,000 yearly installations worldwide. Using it, it is possible to configure operating system internals, such as users, disk quotas, services or configuration files, as well as modify, and control open-source apps, such as BIND DNS Server, Apache HTTP Server, PHP, MySQL, and many more.
Usability can be expanded by installing modules, which can be custom made. Aside from this, there are two other major projects that extend its functionality:
- Virtualmin is a powerful, flexible, most popular, and most comprehensive web-hosting control panel for Linux, and BSD systems, with over 150,000 installations worldwide. It is available in an open-source community-supported version, and a more feature-filled version with premium support;
- Usermin presents and controls a subset of user-centred features, rather than administrator-level tasks.
Webmin includes 116 standard modules, and there are at least as many third-party modules.
Requirements
Perl 5.10 or higher.
Installation
For detailed installation instructions check our guide on webmin.com/download page.
Development
Lead developer
Developers
Contributors
License
Webmin is released under the BSD License.

