Kill remote process via ssh
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
add a comment |
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
add a comment |
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
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
bash
asked 4 mins ago
chrisechrise
1313
1313
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
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}')"
add a comment |
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}')"
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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}')"
add a comment |
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}')"
add a comment |
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}')"
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}')"
answered 25 secs ago
LukeMLukeM
3,44932240
3,44932240
add a comment |
add a comment |
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}')"
add a comment |
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}')"
add a comment |
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}')"
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}')"
answered 22 secs ago
InianInian
3,945824
3,945824
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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