CLI run multiple commands and close terminal
Clash Royale CLAN TAG#URR8PPP
I want to run the following commands and close the terminal:
mysqldump -udatabase -pdatabase database > db.sql && zip db.sql.zip db.sql && rm db.sql && mv db.sql.zip /var/www/vhosts/*/httpdocs && cd /var/www/vhosts/*/httpdocs && zip -r backup.zip . && cd && touch backup_is_ready
It works fine when the terminal is open, but the ZIP will be about 40GB and I want to be able to close the terminal, or else a disconnect can terminate the process.
So I have commands A && B
I tried:
(A &) && (B &)
(A && B) &
A && B &
nohup sh -c "A && B"
nohup A && B &
and many other options, but nothing worked.
I just want to put the command string in the terminal, then close the terminal, come back after 1 hour and get it ready.
I also have a longer command chain that starts with
sh <(wget -O - https://autoinstall.plesk.com/one-click-installer) && plesk bin init_conf --init -name "John Doe" -passwd "mypassword" -email "admin@example.com" -send_announce false -trial_license true -license_agreed true && plesk bin subscription --create example.com -owner admin -service-plan "Unlimited" -ip 000.000.000.000 -login username -passwd 'password' && ...
My command chains work great when the terminal is open, I only want to close it after putting the command chain in the terminal, but I don't want to create a file for it.
Is there any syntax that works without need to create a bash file?
linux bash command-line scripting
add a comment |
I want to run the following commands and close the terminal:
mysqldump -udatabase -pdatabase database > db.sql && zip db.sql.zip db.sql && rm db.sql && mv db.sql.zip /var/www/vhosts/*/httpdocs && cd /var/www/vhosts/*/httpdocs && zip -r backup.zip . && cd && touch backup_is_ready
It works fine when the terminal is open, but the ZIP will be about 40GB and I want to be able to close the terminal, or else a disconnect can terminate the process.
So I have commands A && B
I tried:
(A &) && (B &)
(A && B) &
A && B &
nohup sh -c "A && B"
nohup A && B &
and many other options, but nothing worked.
I just want to put the command string in the terminal, then close the terminal, come back after 1 hour and get it ready.
I also have a longer command chain that starts with
sh <(wget -O - https://autoinstall.plesk.com/one-click-installer) && plesk bin init_conf --init -name "John Doe" -passwd "mypassword" -email "admin@example.com" -send_announce false -trial_license true -license_agreed true && plesk bin subscription --create example.com -owner admin -service-plan "Unlimited" -ip 000.000.000.000 -login username -passwd 'password' && ...
My command chains work great when the terminal is open, I only want to close it after putting the command chain in the terminal, but I don't want to create a file for it.
Is there any syntax that works without need to create a bash file?
linux bash command-line scripting
are you planning tossh
to this host? If so, you can redirect multiple commands to the ssh session. If this is relevant to you, I'll add it to my answer.
– Crypteya
Feb 28 at 3:08
Yes, I am using MobaXterm
– GoodGuy
Feb 28 at 11:41
Rather than me butchering an explanation, check out this answer: stackoverflow.com/a/4412338/3465014, I've also added this info to my answer.
– Crypteya
Feb 28 at 21:21
add a comment |
I want to run the following commands and close the terminal:
mysqldump -udatabase -pdatabase database > db.sql && zip db.sql.zip db.sql && rm db.sql && mv db.sql.zip /var/www/vhosts/*/httpdocs && cd /var/www/vhosts/*/httpdocs && zip -r backup.zip . && cd && touch backup_is_ready
It works fine when the terminal is open, but the ZIP will be about 40GB and I want to be able to close the terminal, or else a disconnect can terminate the process.
So I have commands A && B
I tried:
(A &) && (B &)
(A && B) &
A && B &
nohup sh -c "A && B"
nohup A && B &
and many other options, but nothing worked.
I just want to put the command string in the terminal, then close the terminal, come back after 1 hour and get it ready.
I also have a longer command chain that starts with
sh <(wget -O - https://autoinstall.plesk.com/one-click-installer) && plesk bin init_conf --init -name "John Doe" -passwd "mypassword" -email "admin@example.com" -send_announce false -trial_license true -license_agreed true && plesk bin subscription --create example.com -owner admin -service-plan "Unlimited" -ip 000.000.000.000 -login username -passwd 'password' && ...
My command chains work great when the terminal is open, I only want to close it after putting the command chain in the terminal, but I don't want to create a file for it.
Is there any syntax that works without need to create a bash file?
linux bash command-line scripting
I want to run the following commands and close the terminal:
mysqldump -udatabase -pdatabase database > db.sql && zip db.sql.zip db.sql && rm db.sql && mv db.sql.zip /var/www/vhosts/*/httpdocs && cd /var/www/vhosts/*/httpdocs && zip -r backup.zip . && cd && touch backup_is_ready
It works fine when the terminal is open, but the ZIP will be about 40GB and I want to be able to close the terminal, or else a disconnect can terminate the process.
So I have commands A && B
I tried:
(A &) && (B &)
(A && B) &
A && B &
nohup sh -c "A && B"
nohup A && B &
and many other options, but nothing worked.
I just want to put the command string in the terminal, then close the terminal, come back after 1 hour and get it ready.
I also have a longer command chain that starts with
sh <(wget -O - https://autoinstall.plesk.com/one-click-installer) && plesk bin init_conf --init -name "John Doe" -passwd "mypassword" -email "admin@example.com" -send_announce false -trial_license true -license_agreed true && plesk bin subscription --create example.com -owner admin -service-plan "Unlimited" -ip 000.000.000.000 -login username -passwd 'password' && ...
My command chains work great when the terminal is open, I only want to close it after putting the command chain in the terminal, but I don't want to create a file for it.
Is there any syntax that works without need to create a bash file?
linux bash command-line scripting
linux bash command-line scripting
edited Feb 28 at 1:55
Jeff Schaller♦
43.9k1161141
43.9k1161141
asked Feb 28 at 1:09
GoodGuyGoodGuy
1
1
are you planning tossh
to this host? If so, you can redirect multiple commands to the ssh session. If this is relevant to you, I'll add it to my answer.
– Crypteya
Feb 28 at 3:08
Yes, I am using MobaXterm
– GoodGuy
Feb 28 at 11:41
Rather than me butchering an explanation, check out this answer: stackoverflow.com/a/4412338/3465014, I've also added this info to my answer.
– Crypteya
Feb 28 at 21:21
add a comment |
are you planning tossh
to this host? If so, you can redirect multiple commands to the ssh session. If this is relevant to you, I'll add it to my answer.
– Crypteya
Feb 28 at 3:08
Yes, I am using MobaXterm
– GoodGuy
Feb 28 at 11:41
Rather than me butchering an explanation, check out this answer: stackoverflow.com/a/4412338/3465014, I've also added this info to my answer.
– Crypteya
Feb 28 at 21:21
are you planning to
ssh
to this host? If so, you can redirect multiple commands to the ssh session. If this is relevant to you, I'll add it to my answer.– Crypteya
Feb 28 at 3:08
are you planning to
ssh
to this host? If so, you can redirect multiple commands to the ssh session. If this is relevant to you, I'll add it to my answer.– Crypteya
Feb 28 at 3:08
Yes, I am using MobaXterm
– GoodGuy
Feb 28 at 11:41
Yes, I am using MobaXterm
– GoodGuy
Feb 28 at 11:41
Rather than me butchering an explanation, check out this answer: stackoverflow.com/a/4412338/3465014, I've also added this info to my answer.
– Crypteya
Feb 28 at 21:21
Rather than me butchering an explanation, check out this answer: stackoverflow.com/a/4412338/3465014, I've also added this info to my answer.
– Crypteya
Feb 28 at 21:21
add a comment |
2 Answers
2
active
oldest
votes
- Ctrl + Z to stop (pause) the program and get back to the shell.
bg
to run it in the background.disown -h [job-spec]
where [job-spec] is the job number (like %1 for the first running job; find about your number with the jobs command) so that the job isn't killed when the terminal closes.
add a comment |
To startup a program in the background, use:
<your command> &
What I'd recommend is simply running what you'd like as two separate commands. Try:
user@hostname$ A &
user@hostname$ B &
If this process is too arduous or needs to be run frequently, you can enter these commands into a shell script. This script can then be run with
/path/to/my_script.sh &
Update:
Based on additional info in your comments, for an overview of how to ssh to a host, run multiple commands, and then disconnect, see this answer: https://stackoverflow.com/a/4412338/3465014
Unfortunally it only affects the currently running command, so when A runs, B doesn't start when terminal is closed. <command1 && command2> & returns syntax error
– GoodGuy
Feb 28 at 1:38
@GoodGuy, you shouldn't close the terminal until you have run bothA &
andB &
manually. I've updated my answer to have some additional info about shell scripts.
– Crypteya
Feb 28 at 1:42
Thank you for the answer. Actually the goal is to close the terminal after execute the commands. Can I also cretae a script and run it, like --- touch script && printf "A && B && C" > script && sh script --- ?
– GoodGuy
Feb 28 at 1:47
You can close the terminal by using theexit
command at the end of the script. You should be able to run the script fine like that. Make sure that at the end you do something likesh ./script
orsh /full/path/to/script
. You need to put the path to the script in your final command. Simply doing 'sh script' won't work.
– Crypteya
Feb 28 at 3:04
A major benefit of scripting however is that it doesn't need to be re-created each time so the long one-liner may not be necessary after it has been created.
– Crypteya
Feb 28 at 3:10
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%2f503458%2fcli-run-multiple-commands-and-close-terminal%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
- Ctrl + Z to stop (pause) the program and get back to the shell.
bg
to run it in the background.disown -h [job-spec]
where [job-spec] is the job number (like %1 for the first running job; find about your number with the jobs command) so that the job isn't killed when the terminal closes.
add a comment |
- Ctrl + Z to stop (pause) the program and get back to the shell.
bg
to run it in the background.disown -h [job-spec]
where [job-spec] is the job number (like %1 for the first running job; find about your number with the jobs command) so that the job isn't killed when the terminal closes.
add a comment |
- Ctrl + Z to stop (pause) the program and get back to the shell.
bg
to run it in the background.disown -h [job-spec]
where [job-spec] is the job number (like %1 for the first running job; find about your number with the jobs command) so that the job isn't killed when the terminal closes.
- Ctrl + Z to stop (pause) the program and get back to the shell.
bg
to run it in the background.disown -h [job-spec]
where [job-spec] is the job number (like %1 for the first running job; find about your number with the jobs command) so that the job isn't killed when the terminal closes.
answered Feb 28 at 1:15
JustinJustin
111
111
add a comment |
add a comment |
To startup a program in the background, use:
<your command> &
What I'd recommend is simply running what you'd like as two separate commands. Try:
user@hostname$ A &
user@hostname$ B &
If this process is too arduous or needs to be run frequently, you can enter these commands into a shell script. This script can then be run with
/path/to/my_script.sh &
Update:
Based on additional info in your comments, for an overview of how to ssh to a host, run multiple commands, and then disconnect, see this answer: https://stackoverflow.com/a/4412338/3465014
Unfortunally it only affects the currently running command, so when A runs, B doesn't start when terminal is closed. <command1 && command2> & returns syntax error
– GoodGuy
Feb 28 at 1:38
@GoodGuy, you shouldn't close the terminal until you have run bothA &
andB &
manually. I've updated my answer to have some additional info about shell scripts.
– Crypteya
Feb 28 at 1:42
Thank you for the answer. Actually the goal is to close the terminal after execute the commands. Can I also cretae a script and run it, like --- touch script && printf "A && B && C" > script && sh script --- ?
– GoodGuy
Feb 28 at 1:47
You can close the terminal by using theexit
command at the end of the script. You should be able to run the script fine like that. Make sure that at the end you do something likesh ./script
orsh /full/path/to/script
. You need to put the path to the script in your final command. Simply doing 'sh script' won't work.
– Crypteya
Feb 28 at 3:04
A major benefit of scripting however is that it doesn't need to be re-created each time so the long one-liner may not be necessary after it has been created.
– Crypteya
Feb 28 at 3:10
add a comment |
To startup a program in the background, use:
<your command> &
What I'd recommend is simply running what you'd like as two separate commands. Try:
user@hostname$ A &
user@hostname$ B &
If this process is too arduous or needs to be run frequently, you can enter these commands into a shell script. This script can then be run with
/path/to/my_script.sh &
Update:
Based on additional info in your comments, for an overview of how to ssh to a host, run multiple commands, and then disconnect, see this answer: https://stackoverflow.com/a/4412338/3465014
Unfortunally it only affects the currently running command, so when A runs, B doesn't start when terminal is closed. <command1 && command2> & returns syntax error
– GoodGuy
Feb 28 at 1:38
@GoodGuy, you shouldn't close the terminal until you have run bothA &
andB &
manually. I've updated my answer to have some additional info about shell scripts.
– Crypteya
Feb 28 at 1:42
Thank you for the answer. Actually the goal is to close the terminal after execute the commands. Can I also cretae a script and run it, like --- touch script && printf "A && B && C" > script && sh script --- ?
– GoodGuy
Feb 28 at 1:47
You can close the terminal by using theexit
command at the end of the script. You should be able to run the script fine like that. Make sure that at the end you do something likesh ./script
orsh /full/path/to/script
. You need to put the path to the script in your final command. Simply doing 'sh script' won't work.
– Crypteya
Feb 28 at 3:04
A major benefit of scripting however is that it doesn't need to be re-created each time so the long one-liner may not be necessary after it has been created.
– Crypteya
Feb 28 at 3:10
add a comment |
To startup a program in the background, use:
<your command> &
What I'd recommend is simply running what you'd like as two separate commands. Try:
user@hostname$ A &
user@hostname$ B &
If this process is too arduous or needs to be run frequently, you can enter these commands into a shell script. This script can then be run with
/path/to/my_script.sh &
Update:
Based on additional info in your comments, for an overview of how to ssh to a host, run multiple commands, and then disconnect, see this answer: https://stackoverflow.com/a/4412338/3465014
To startup a program in the background, use:
<your command> &
What I'd recommend is simply running what you'd like as two separate commands. Try:
user@hostname$ A &
user@hostname$ B &
If this process is too arduous or needs to be run frequently, you can enter these commands into a shell script. This script can then be run with
/path/to/my_script.sh &
Update:
Based on additional info in your comments, for an overview of how to ssh to a host, run multiple commands, and then disconnect, see this answer: https://stackoverflow.com/a/4412338/3465014
edited Feb 28 at 21:25
answered Feb 28 at 1:32
CrypteyaCrypteya
414118
414118
Unfortunally it only affects the currently running command, so when A runs, B doesn't start when terminal is closed. <command1 && command2> & returns syntax error
– GoodGuy
Feb 28 at 1:38
@GoodGuy, you shouldn't close the terminal until you have run bothA &
andB &
manually. I've updated my answer to have some additional info about shell scripts.
– Crypteya
Feb 28 at 1:42
Thank you for the answer. Actually the goal is to close the terminal after execute the commands. Can I also cretae a script and run it, like --- touch script && printf "A && B && C" > script && sh script --- ?
– GoodGuy
Feb 28 at 1:47
You can close the terminal by using theexit
command at the end of the script. You should be able to run the script fine like that. Make sure that at the end you do something likesh ./script
orsh /full/path/to/script
. You need to put the path to the script in your final command. Simply doing 'sh script' won't work.
– Crypteya
Feb 28 at 3:04
A major benefit of scripting however is that it doesn't need to be re-created each time so the long one-liner may not be necessary after it has been created.
– Crypteya
Feb 28 at 3:10
add a comment |
Unfortunally it only affects the currently running command, so when A runs, B doesn't start when terminal is closed. <command1 && command2> & returns syntax error
– GoodGuy
Feb 28 at 1:38
@GoodGuy, you shouldn't close the terminal until you have run bothA &
andB &
manually. I've updated my answer to have some additional info about shell scripts.
– Crypteya
Feb 28 at 1:42
Thank you for the answer. Actually the goal is to close the terminal after execute the commands. Can I also cretae a script and run it, like --- touch script && printf "A && B && C" > script && sh script --- ?
– GoodGuy
Feb 28 at 1:47
You can close the terminal by using theexit
command at the end of the script. You should be able to run the script fine like that. Make sure that at the end you do something likesh ./script
orsh /full/path/to/script
. You need to put the path to the script in your final command. Simply doing 'sh script' won't work.
– Crypteya
Feb 28 at 3:04
A major benefit of scripting however is that it doesn't need to be re-created each time so the long one-liner may not be necessary after it has been created.
– Crypteya
Feb 28 at 3:10
Unfortunally it only affects the currently running command, so when A runs, B doesn't start when terminal is closed. <command1 && command2> & returns syntax error
– GoodGuy
Feb 28 at 1:38
Unfortunally it only affects the currently running command, so when A runs, B doesn't start when terminal is closed. <command1 && command2> & returns syntax error
– GoodGuy
Feb 28 at 1:38
@GoodGuy, you shouldn't close the terminal until you have run both
A &
and B &
manually. I've updated my answer to have some additional info about shell scripts.– Crypteya
Feb 28 at 1:42
@GoodGuy, you shouldn't close the terminal until you have run both
A &
and B &
manually. I've updated my answer to have some additional info about shell scripts.– Crypteya
Feb 28 at 1:42
Thank you for the answer. Actually the goal is to close the terminal after execute the commands. Can I also cretae a script and run it, like --- touch script && printf "A && B && C" > script && sh script --- ?
– GoodGuy
Feb 28 at 1:47
Thank you for the answer. Actually the goal is to close the terminal after execute the commands. Can I also cretae a script and run it, like --- touch script && printf "A && B && C" > script && sh script --- ?
– GoodGuy
Feb 28 at 1:47
You can close the terminal by using the
exit
command at the end of the script. You should be able to run the script fine like that. Make sure that at the end you do something like sh ./script
or sh /full/path/to/script
. You need to put the path to the script in your final command. Simply doing 'sh script' won't work.– Crypteya
Feb 28 at 3:04
You can close the terminal by using the
exit
command at the end of the script. You should be able to run the script fine like that. Make sure that at the end you do something like sh ./script
or sh /full/path/to/script
. You need to put the path to the script in your final command. Simply doing 'sh script' won't work.– Crypteya
Feb 28 at 3:04
A major benefit of scripting however is that it doesn't need to be re-created each time so the long one-liner may not be necessary after it has been created.
– Crypteya
Feb 28 at 3:10
A major benefit of scripting however is that it doesn't need to be re-created each time so the long one-liner may not be necessary after it has been created.
– Crypteya
Feb 28 at 3:10
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%2f503458%2fcli-run-multiple-commands-and-close-terminal%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
are you planning to
ssh
to this host? If so, you can redirect multiple commands to the ssh session. If this is relevant to you, I'll add it to my answer.– Crypteya
Feb 28 at 3:08
Yes, I am using MobaXterm
– GoodGuy
Feb 28 at 11:41
Rather than me butchering an explanation, check out this answer: stackoverflow.com/a/4412338/3465014, I've also added this info to my answer.
– Crypteya
Feb 28 at 21:21