Merge "RevisionStoreDbTestBase, remove redundant needsDB override"
[lhc/web/wiklou.git] / maintenance / mysql.php
index 6d0882a..9424402 100644 (file)
@@ -106,9 +106,9 @@ class MysqlMaintenance extends Maintenance {
         * Run the mysql client for the given server info
         *
         * @param array $info
-        * @param string|false The DB name, or false to use the main wiki DB
+        * @param string|false $dbName The DB name, or false to use the main wiki DB
         *
-        * @return The desired exit status
+        * @return int The desired exit status
         */
        private function runMysql( $info, $dbName ) {
                // Write the password to an option file to avoid disclosing it to other
@@ -165,6 +165,12 @@ class MysqlMaintenance extends Maintenance {
 
                $args = array_merge( $args, $this->mArgs );
 
+               // Ignore SIGINT if possible, otherwise the wrapper terminates when the user presses
+               // ctrl-C to kill a query.
+               if ( function_exists( 'pcntl_signal' ) ) {
+                       pcntl_signal( SIGINT, SIG_IGN );
+               }
+
                $pipes = [];
                $proc = proc_open( Shell::escape( $args ), $desc, $pipes );
                if ( $proc === false ) {