From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Tim Van den Langenbergh Newsgroups: gmane.lisp.guile.user Subject: Re: How to capture pid of (system process? Date: Tue, 14 Dec 2021 14:05:12 +0100 Message-ID: <1f8f23a8-5210-96a5-7bb3-3b2b119c79e1@gmx.com> References: <25238084-6589-146f-566c-89f7df9afad9@rixotstudio.cz> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------2g0aCxgWGYQEheBYuBx6OqZX" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3601"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.4.0 To: Jacob Hrbek , guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Tue Dec 14 14:10:35 2021 Return-path: Envelope-to: guile-user@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mx7Zj-0000hj-3N for guile-user@m.gmane-mx.org; Tue, 14 Dec 2021 14:10:35 +0100 Original-Received: from localhost ([::1]:54682 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mx7Zh-0004bM-Pz for guile-user@m.gmane-mx.org; Tue, 14 Dec 2021 08:10:33 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:48112) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mx7Ug-0007hn-6f for guile-user@gnu.org; Tue, 14 Dec 2021 08:05:22 -0500 Original-Received: from mout.gmx.net ([212.227.17.21]:41519) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mx7Ud-0008GY-Pe for guile-user@gnu.org; Tue, 14 Dec 2021 08:05:21 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1639487114; bh=V8p+M+a76skWvZjrB85oRMobu7nEAZMBsqGrve3Yqw0=; h=X-UI-Sender-Class:Date:To:References:From:Subject:In-Reply-To; b=lREutyzCCjuRNA0XZQS8ukaM7f1lKPPIctfEULMrbq4HdKPtH/ZtgDp0CkzrdZw9P dgdTNBFr0T3rE1uZsiu88CVpQUVB2oYOJGK/ACXYYiFLyMXi30asHI6grUiKpZ2U2J Bc/shXnlfGACQn7Bu6FktriLCZYrhtQVDF8LXCzY= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from [192.168.42.212] ([94.227.125.226]) by mail.gmx.net (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MKsj7-1nDy5P1aaD-00LBWc; Tue, 14 Dec 2021 14:05:14 +0100 Content-Language: en-GB In-Reply-To: <25238084-6589-146f-566c-89f7df9afad9@rixotstudio.cz> X-Provags-ID: V03:K1:djrbXSmmou+u1vjWaMCLcwWE6FuM5qJ4ZOe1vATYldXqs+4ev6N 0pREsLrZ6iATnjsE1ft/gIj8BTXObLAXZmSgUw/vqyAQfSvwaPM91lW0B2ePfWGfWXBr8Zs 6PMWVfIo3rxMxi640OCe8lescMXRlunY5VXKF7k6Zy4plfddv8E+/MV1413ExYhM0U/9nvR vmjzHrVGVyfHaqPVJtTVg== X-UI-Out-Filterresults: notjunk:1;V03:K0:shDVwonA/fo=:BnxFFBwD9+Hi/4rZSQvaVs ETXS/kVfH9u5SilWPSJTH9mDge0bbCN94uOH0PT+poX6g0iUll+RRQEw+HY/QVslUldOhIi7v YF8WWGgRfgV1niKF8uNUwB3RVmRQEmcUpSnqWbuod4zYuoy0LQrH3WYXGXsGqun7ps5NF0RTf 3yxG6t8Lupc0avuAmLq6wATIB7dEBrdOeJkiyB52/f6HDRdKwkpcHBrH5NYS2K4hsAqgdXB8h x0YevS70/KPRnBCibEJ9KTOpvU71zEEW8VhTbxAVDbvaJZFax3qM3Cy1I8NwAhXGPGTKh5X2Z dwW7aWfbnXXXcdQ0eqWfNbOAnUm3fMxS7vMYRRzo4SBL/tKJm5P/0tKqdON5ulhEwdhWLro+Z 2HWZ+OnW8JPPnfpHJlZbH4GOJKDL+nwsqNm8N9B+5aG73sDTCKzxJiZdUr5Z8u1N+flMxquKC f1scw3kJoYVXVgz/lJmw0noJNf6KKkPpXYJ/lmw2WfvLuk89oBkvgqd8XnGsY9bzfeCStP3lO Ci3J8qKiLVUMkstr0j+dUD2C+f2o5gWTyAizCHKJqcy68U2ftqveHMYX7pbrzZHD3sjy4Lfr7 KehW56PByZ/d4vBZeLBnpybe6axL1EVmGm+y9M9I7Zb2l9JL9bxpoe7+drubrkVhPrE3YfuIp wRFc8XkybTEbFc2ohZez/vpP58oLbxhvxCIobaRAxY3lsmG6Vd/80VzazU73kIgo5J37NOyk2 ssa9nnMaUCO7rDK2oE/cSyjDirI8+bpsLrqgwTZutFag7RzQ5W2Z19dNGoqmaY2whu+DtPoD Received-SPF: pass client-ip=212.227.17.21; envelope-from=tmt_vdl@gmx.com; helo=mout.gmx.net X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FROM=0.001, NICE_REPLY_A=-0.962, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.io gmane.lisp.guile.user:17848 Archived-At: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------2g0aCxgWGYQEheBYuBx6OqZX Content-Type: multipart/mixed; boundary="------------ThbWtbGi0epNrQt07SpQZ03m"; protected-headers="v1" From: Tim Van den Langenbergh To: Jacob Hrbek , guile-user@gnu.org Message-ID: <1f8f23a8-5210-96a5-7bb3-3b2b119c79e1@gmx.com> Subject: Re: How to capture pid of (system process? References: <25238084-6589-146f-566c-89f7df9afad9@rixotstudio.cz> In-Reply-To: <25238084-6589-146f-566c-89f7df9afad9@rixotstudio.cz> --------------ThbWtbGi0epNrQt07SpQZ03m Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 13/12/2021 22:01, Jacob Hrbek wrote: > I wrote this potato-make defini= tion (was simplified): >=20 > #:SRC_BEGIN sheme-mode > #!/usr/bin/env sh > exec guile -s "$0" "$@" > !# >=20 > (use-modules (ice-9 futures) > =C2=A0(potato make)) > (initialize) >=20 > (: "watch" '() > =C2=A0=C2=A0 (~ (do ((i 1 (1+ i))) > =C2=A0=C2=A0 =C2=A0=C2=A0 ((> i 6)) > =C2=A0=C2=A0 =C2=A0(future (system > =C2=A0=C2=A0 =C2=A0 "emacs")) > =C2=A0=C2=A0 =C2=A0;;(let ((emacs_pid (getpid))) > =C2=A0=C2=A0 =C2=A0 ;; (kill emacs_pid SIGTERM))))) >=20 > (execute) > #:SRC_END >=20 > expecting to capture emacs's pid and kill it, but the issue is that usi= ng `getpid` gets me the PID of potato-make and `getppid` of the shell -> = How can i capture just the emacs's pid? >=20 > FWIW the projected end-goal is 3600 loop that checks if the `my-theme.e= l` file has been changed to re-launch emacs with the theme loaded used fo= r theme development. >=20 Hello, I hope this day finds you well. While Guile does not directly provide a function to get the PID of an arb= itrary process, we could use pgrep to find what we need. #+begin_src scheme (use-modules (ice-9 popen) (ice-9 textual-ports)) (map string->number (string-split (let ((port (open-input-pipe "pgrep emacs")) (s (get-string-all port))) (close-pipe port) s) #\newline)) ;; =3D> (1220 #f) #+end_src I hope this helps! Vale, -Tim --------------ThbWtbGi0epNrQt07SpQZ03m-- --------------2g0aCxgWGYQEheBYuBx6OqZX Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEEoaHRUPlqTFTeZ4f99QrzKNnR5jUFAmG4lokFAwAAAAAACgkQ9QrzKNnR5jUR yRAAkw4wDsdShHElSWwmycDza9GwlLP4dhn4dO4pkVqIsH78phmGf2t4wzWCnwGh92fO94tYzk/v MUzHKIDY9n395txh5wYjtAi0dfLVoXt+oIiajK2H+d3v+p4PJ2a7JnfYdIAtGVqC8Ly+hPKkmqTM kUjiuCUdE5JyGqPNz6CFqpWQ7qlRMTyl72dkfyZj/4YQkZHCJMGQ7tIz08gkxX0ljojGXydwAuvD 4/lTi0rQYIvYEoPb9TO4dlkKYM35znb/GXRcm7pTJJN7K3V2gs8HK9ZzbMJJqBzhH1omcneR6OT9 cNuLdVSwgtAdcl39HzxDxq9ESCyysdofnoSEfs7cpV0VogBBah3/4L09Ml/RMINZASBIdQNOB/s8 wJlG7JMiFAXKoIo43VINLhIYTgI+3YTjN06/lJTRKhjm5W96FV6uiHgquSoCEsbzDEwfJxPPk3fF HvOPdr2KgTu+3GirgOC+vzD0BP1kzEkdgSYUIzjtEkVhDLVaIQpCV5rCNuZ3H8ljhcGUVcrtM3iF S0CsgpJxatD78D94f9sPoaGPompJILlNd1PeXJYoD8wb8KJ0GxmzdqQJOLoMRxpbHdt1TbaOHlKu g1aq9F9EiC2tXx+MFYY0GxMwHHFgGHaiG0ZOCWPkWQSUjJP83qt3UB7FMzrONEx7tcDF0FtAHwwQ HNM= =OJg/ -----END PGP SIGNATURE----- --------------2g0aCxgWGYQEheBYuBx6OqZX--