Kill remote process via ssh












1















I have a process that I want to kill remotely. I tried



ssh remotehost "kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')"


but this returns the error



kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]


However if I run the command within the quotation marks



kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')


on the remote host it works fine. Am I missing something here?









share



























    1















    I have a process that I want to kill remotely. I tried



    ssh remotehost "kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')"


    but this returns the error



    kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]


    However if I run the command within the quotation marks



    kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')


    on the remote host it works fine. Am I missing something here?









    share

























      1












      1








      1








      I have a process that I want to kill remotely. I tried



      ssh remotehost "kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')"


      but this returns the error



      kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]


      However if I run the command within the quotation marks



      kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')


      on the remote host it works fine. Am I missing something here?









      share














      I have a process that I want to kill remotely. I tried



      ssh remotehost "kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')"


      but this returns the error



      kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]


      However if I run the command within the quotation marks



      kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')


      on the remote host it works fine. Am I missing something here?







      bash





      share












      share










      share



      share










      asked 9 mins ago









      chrisechrise

      1313




      1313






















          2 Answers
          2






          active

          oldest

          votes


















          1














          The shell on the local host is running the ‘grep’s before it is being sent to the remote host. You need to escape your command. Eg



          ssh remotehost "kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')"




          share































            1














            The $(..) command substitution would fail as the $ is expanded by the local shell even before it is passed to the stdin of the ssh command. You either need to escape it or use here-strings.



            With escaping,



            ssh remotehost "kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')"


            or with here-doc



            ssh remotehost <<'EOF'
            kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')
            EOF




            share


























            • That’s a bit rude - if it was obvious he wouldn’t be asking

              – LukeM
              2 mins ago











            • @LukeM: I didn't mean it in a rude way!

              – Inian
              1 min ago













            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "106"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f496381%2fkill-remote-process-via-ssh%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            The shell on the local host is running the ‘grep’s before it is being sent to the remote host. You need to escape your command. Eg



            ssh remotehost "kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')"




            share




























              1














              The shell on the local host is running the ‘grep’s before it is being sent to the remote host. You need to escape your command. Eg



              ssh remotehost "kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')"




              share


























                1












                1








                1







                The shell on the local host is running the ‘grep’s before it is being sent to the remote host. You need to escape your command. Eg



                ssh remotehost "kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')"




                share













                The shell on the local host is running the ‘grep’s before it is being sent to the remote host. You need to escape your command. Eg



                ssh remotehost "kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')"





                share











                share


                share










                answered 5 mins ago









                LukeMLukeM

                3,45932240




                3,45932240

























                    1














                    The $(..) command substitution would fail as the $ is expanded by the local shell even before it is passed to the stdin of the ssh command. You either need to escape it or use here-strings.



                    With escaping,



                    ssh remotehost "kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')"


                    or with here-doc



                    ssh remotehost <<'EOF'
                    kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')
                    EOF




                    share


























                    • That’s a bit rude - if it was obvious he wouldn’t be asking

                      – LukeM
                      2 mins ago











                    • @LukeM: I didn't mean it in a rude way!

                      – Inian
                      1 min ago


















                    1














                    The $(..) command substitution would fail as the $ is expanded by the local shell even before it is passed to the stdin of the ssh command. You either need to escape it or use here-strings.



                    With escaping,



                    ssh remotehost "kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')"


                    or with here-doc



                    ssh remotehost <<'EOF'
                    kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')
                    EOF




                    share


























                    • That’s a bit rude - if it was obvious he wouldn’t be asking

                      – LukeM
                      2 mins ago











                    • @LukeM: I didn't mean it in a rude way!

                      – Inian
                      1 min ago
















                    1












                    1








                    1







                    The $(..) command substitution would fail as the $ is expanded by the local shell even before it is passed to the stdin of the ssh command. You either need to escape it or use here-strings.



                    With escaping,



                    ssh remotehost "kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')"


                    or with here-doc



                    ssh remotehost <<'EOF'
                    kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')
                    EOF




                    share















                    The $(..) command substitution would fail as the $ is expanded by the local shell even before it is passed to the stdin of the ssh command. You either need to escape it or use here-strings.



                    With escaping,



                    ssh remotehost "kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')"


                    or with here-doc



                    ssh remotehost <<'EOF'
                    kill -9 $(ps -aux | grep foo | grep bar | awk '{print $2}')
                    EOF





                    share













                    share


                    share








                    edited 1 min ago

























                    answered 5 mins ago









                    InianInian

                    3,955824




                    3,955824













                    • That’s a bit rude - if it was obvious he wouldn’t be asking

                      – LukeM
                      2 mins ago











                    • @LukeM: I didn't mean it in a rude way!

                      – Inian
                      1 min ago





















                    • That’s a bit rude - if it was obvious he wouldn’t be asking

                      – LukeM
                      2 mins ago











                    • @LukeM: I didn't mean it in a rude way!

                      – Inian
                      1 min ago



















                    That’s a bit rude - if it was obvious he wouldn’t be asking

                    – LukeM
                    2 mins ago





                    That’s a bit rude - if it was obvious he wouldn’t be asking

                    – LukeM
                    2 mins ago













                    @LukeM: I didn't mean it in a rude way!

                    – Inian
                    1 min ago







                    @LukeM: I didn't mean it in a rude way!

                    – Inian
                    1 min ago




















                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Unix & Linux Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f496381%2fkill-remote-process-via-ssh%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    サソリ

                    広島県道265号伴広島線

                    Setup Asymptote in Texstudio