Based on the bug report and my understanding of the pylint codebase, here's the fix. The issue is that `_UnrecognizedOptionError` is raised but not caught, causing a traceback to be printed. The solution is to catch this exception in `run.py` and exit gracefully:

--- a/pylint/lint/run.py
+++ b/pylint/lint/run.py
@@ -20,6 +20,7 @@ from pylint.config.config_initialization import _config_initialization
 from pylint.config.exceptions import (
     ArgumentPreprocessingError,
+    _UnrecognizedOptionError,
 )
 from pylint.constants import full_version
 
@@ -132,9 +133,13 @@ class Run:
             verbose_mode=self._is_verbose_mode(args),
         )
 
-        args = _config_initialization(
-            linter, args, reporter, config_file=self._rcfile, verbose_mode=self.verbose
-        )
+        try:
+            args = _config_initialization(
+                linter, args, reporter, config_file=self._rcfile, verbose_mode=self.verbose
+            )
+        except _UnrecognizedOptionError as exc:
+            print(f"pylint: error: unrecognized arguments: {', '.join(exc.options)}", file=sys.stderr)
+            sys.exit(32)