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 4 mins ago









      chrisechrise

      1313




      1313






















          2 Answers
          2






          active

          oldest

          votes


















          0














          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































            0














            It wouldn't work obviously. 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}')"




            share























              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









              0














              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




























                0














                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


























                  0












                  0








                  0







                  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 25 secs ago









                  LukeMLukeM

                  3,44932240




                  3,44932240

























                      0














                      It wouldn't work obviously. 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}')"




                      share




























                        0














                        It wouldn't work obviously. 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}')"




                        share


























                          0












                          0








                          0







                          It wouldn't work obviously. 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}')"




                          share













                          It wouldn't work obviously. 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}')"





                          share











                          share


                          share










                          answered 22 secs ago









                          InianInian

                          3,945824




                          3,945824






























                              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

                              CARDNET

                              Boot-repair Failure: Unable to locate package grub-common:i386

                              濃尾地震