From patchwork Thu Dec 2 15:39:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leo-Andres Hofmann X-Patchwork-Id: 4888 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4J4gBq0f5Cz3wg9 for ; Thu, 2 Dec 2021 15:40:19 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail02.haj.ipfire.org", Issuer "R3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4J4gBl47R6zjr; Thu, 2 Dec 2021 15:40:15 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4J4gBl2SlSz2yW0; Thu, 2 Dec 2021 15:40:15 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4J4gBj0xpxz2xWY for ; Thu, 2 Dec 2021 15:40:13 +0000 (UTC) Received: from arche.uberspace.de (arche.uberspace.de [185.26.156.147]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail01.ipfire.org (Postfix) with ESMTPS id 4J4gBb23g1znR for ; Thu, 2 Dec 2021 15:40:07 +0000 (UTC) Received: (qmail 21995 invoked from network); 2 Dec 2021 15:40:05 -0000 Received: from localhost (HELO localhost) (127.0.0.1) by arche.uberspace.de with SMTP; 2 Dec 2021 15:40:05 -0000 From: Leo-Andres Hofmann To: development@lists.ipfire.org Subject: [PATCH 1/4] pakfire.cgi: Extend the lockfile test Date: Thu, 2 Dec 2021 16:39:52 +0100 Message-Id: <20211202153955.1126-1-hofmann@leo-andres.de> X-Mailer: git-send-email 2.27.0.windows.1 MIME-Version: 1.0 ARC-Seal: i=1; s=202003rsa; d=lists.ipfire.org; t=1638459607; a=rsa-sha256; cv=none; b=OdStOSXYx9xhFbbGxNejgPXSEBiruYeuN7JN5yTMmIg7omRY52K+yvpL40hUGR+DJQ9o6N ykpncFIjGSQV6pPVs/mY9u/Bs2b6jtf3AKI2m3MfI7IysZeIeIKwBMUq1eVt2OU6YnlrqW TKod91BHTcQauL+uyDm0Ne+x/2OW2PNtMM2+jvAe+2FjH2vQ5fD0aNuy3r6hxDRopwdhHi 18fct1OYe8kqHCJC0B8u0xGQfm1HkZDxblKubCs63Wh+VwVFYsePqiXb5bjie6cuvlNjEb 5o65/9HBRwSW4k74K6wQv6ZOmQ0Gcy97sQeIZtoLT3hzzv6qehI5qM0tdaJoiQ== ARC-Authentication-Results: i=1; mail01.ipfire.org; dkim=none; spf=pass (mail01.ipfire.org: domain of hofmann@leo-andres.de designates 185.26.156.147 as permitted sender) smtp.mailfrom=hofmann@leo-andres.de; dmarc=pass (policy=none) header.from=leo-andres.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=lists.ipfire.org; s=202003rsa; t=1638459607; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=MFzmHEMKjdBRT3ZTISsPkEBQ1XwFu+b1U/UutSlG/pU=; b=b25d64EXetSx8EQH/iGfXTTND2e8XoQL5snt4/MY+UJy3bi6eMZtNtMhhRkL4/mgfjJHkr QofOJqwQe0iyNU8Wz1MhNM5O/X+c2Pa1gJsJDv5jAUS4LRuCiSdLa1qxiYSodWEUVdbDRL waSjY6DZuU4XB3NuwYa7dIrTRRuWECRP0oQitNycO+QJgpfFQjDSnhhAQ56IEj6KBTYNDz vauCPuaTRvNaVDL2d7boo2qyf3qcCF/3Ll6NzXeResowOuWe2nffhCyPmbjn6p/eVf914y ZOJEphJWgDi9elU++/IMpOM0dLOh825b7FjPc8QCmYxPz0rU/C1PXVuSISU/1g== X-Rspamd-Queue-Id: 4J4gBb23g1znR Authentication-Results: mail01.ipfire.org; dkim=none; spf=pass (mail01.ipfire.org: domain of hofmann@leo-andres.de designates 185.26.156.147 as permitted sender) smtp.mailfrom=hofmann@leo-andres.de; dmarc=pass (policy=none) header.from=leo-andres.de X-Spamd-Result: default: False [-3.68 / 11.00]; BAYES_HAM(-3.00)[99.99%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM(-0.99)[-0.990]; SPF_REPUTATION_HAM(-0.88)[-0.88338842932253]; R_MISSING_CHARSET(0.50)[]; MX_INVALID(0.50)[]; DMARC_POLICY_ALLOW(-0.50)[leo-andres.de,none]; R_SPF_ALLOW(-0.20)[+mx]; MIME_GOOD(-0.10)[text/plain]; IP_REPUTATION_HAM(-0.01)[asn: 205766(0.00), country: DE(-0.01), ip: 185.26.156.147(0.00)]; FROM_EQ_ENVFROM(0.00)[]; ASN(0.00)[asn:205766, ipnet:185.26.156.0/24, country:DE]; MIME_TRACE(0.00)[0:+]; R_DKIM_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; ARC_SIGNED(0.00)[lists.ipfire.org:s=202003rsa:i=1]; ARC_NA(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_HAS_DN(0.00)[]; TO_DN_NONE(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[] X-Rspamd-Server: mail01.haj.ipfire.org X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: development-bounces@lists.ipfire.org Sender: "Development" This implements a function to determine if Pakfire is already running. It tests the PID and lockfile and can be expanded easily later. 'pidof' checks the full path to avoid confusion. Removes the unreachable function "refreshpage". Signed-off-by: Leo-Andres Hofmann --- html/cgi-bin/pakfire.cgi | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/html/cgi-bin/pakfire.cgi b/html/cgi-bin/pakfire.cgi index 4d6eee284..7957bc154 100644 --- a/html/cgi-bin/pakfire.cgi +++ b/html/cgi-bin/pakfire.cgi @@ -44,8 +44,6 @@ $cgiparams{'VALID'} = ''; $cgiparams{'INSPAKS'} = ''; $cgiparams{'DELPAKS'} = ''; -sub refreshpage{&Header::openbox( 'Waiting', 1, "" );print "

$Lang::tr{'pagerefresh'}
";&Header::closebox();} - &Header::getcgihash(\%cgiparams); &General::readhash("${General::swroot}/main/settings", \%mainsettings); @@ -54,7 +52,7 @@ sub refreshpage{&Header::openbox( 'Waiting', 1, "" ); print < @@ -203,7 +197,6 @@ END &Header::closebigbox(); &Header::closepage(); exit; - refreshpage(); } my $core_release = `cat /opt/pakfire/db/core/mine 2>/dev/null`; @@ -314,3 +307,16 @@ END &Header::closebox(); &Header::closebigbox(); &Header::closepage(); + +###--- Internal functions ---### + +# Check if pakfire is already running (extend test here if necessary) +sub _is_pakfire_busy { + # Get PID of a running pakfire instance + # (The system backpipe command is safe, because no user input is computed.) + my $pakfire_pid = `pidof -s /usr/local/bin/pakfire`; + chomp($pakfire_pid); + + # Test presence of PID or lockfile + return (($pakfire_pid) || (-e "$Pakfire::lockfile")); +}