CLI run multiple commands and close terminal

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












0















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?










share|improve this question
























  • 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
















0















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?










share|improve this question
























  • 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














0












0








0








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?










share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Feb 28 at 1:55









Jeff Schaller

43.9k1161141




43.9k1161141










asked Feb 28 at 1:09









GoodGuyGoodGuy

1




1












  • 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


















  • 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

















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











2 Answers
2






active

oldest

votes


















0














  1. Ctrl + Z to stop (pause) the program and get back to the shell.


  2. bg to run it in the background.


  3. 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.





share|improve this answer






























    0














    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






    share|improve this answer

























    • 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











    • 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












    • 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










    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%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









    0














    1. Ctrl + Z to stop (pause) the program and get back to the shell.


    2. bg to run it in the background.


    3. 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.





    share|improve this answer



























      0














      1. Ctrl + Z to stop (pause) the program and get back to the shell.


      2. bg to run it in the background.


      3. 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.





      share|improve this answer

























        0












        0








        0







        1. Ctrl + Z to stop (pause) the program and get back to the shell.


        2. bg to run it in the background.


        3. 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.





        share|improve this answer













        1. Ctrl + Z to stop (pause) the program and get back to the shell.


        2. bg to run it in the background.


        3. 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.






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Feb 28 at 1:15









        JustinJustin

        111




        111























            0














            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






            share|improve this answer

























            • 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











            • 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












            • 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















            0














            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






            share|improve this answer

























            • 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











            • 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












            • 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













            0












            0








            0







            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






            share|improve this answer















            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







            share|improve this answer














            share|improve this answer



            share|improve this answer








            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 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











            • 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

















            • 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











            • 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












            • 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

















            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%2f503458%2fcli-run-multiple-commands-and-close-terminal%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

            How to check contact read email or not when send email to Individual?

            Displaying single band from multi-band raster using QGIS

            How many registers does an x86_64 CPU actually have?