execute sh script from crontab problem












0














I was configuring crontab with user "pi" to execute an sh script every 30 mins.



In terminal:crontab -u pi -eI added this line: */30 * * * * /bin/sh /home/pi/test.sh



And in the script test.sh there three lines:



#!/bin/sh
/usr/bin/transmission-gtk
echo "done" > /home/pi/startup/result.txt


As a result, every 30 minutes the result.txt updated, anyway the transmission-gtk never shows up. Namely, only 1 (of 2) commands in the test.sh worked.



But when I manually execute the /home/pi/test.sh in terminal, everything works fine.
The test.txt updated and the transmission-gtk shows up.



I know that everything in crontab should be written with absolute-path and I'm pretty sure that the transmission-gtk is in /usr/bin. And of course, from the above we know the user "pi" has the permission to execute both test.sh and transmission-gtk.



Can anybody tell why is this happening?










share|improve this question









New contributor




Alxt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

























    0














    I was configuring crontab with user "pi" to execute an sh script every 30 mins.



    In terminal:crontab -u pi -eI added this line: */30 * * * * /bin/sh /home/pi/test.sh



    And in the script test.sh there three lines:



    #!/bin/sh
    /usr/bin/transmission-gtk
    echo "done" > /home/pi/startup/result.txt


    As a result, every 30 minutes the result.txt updated, anyway the transmission-gtk never shows up. Namely, only 1 (of 2) commands in the test.sh worked.



    But when I manually execute the /home/pi/test.sh in terminal, everything works fine.
    The test.txt updated and the transmission-gtk shows up.



    I know that everything in crontab should be written with absolute-path and I'm pretty sure that the transmission-gtk is in /usr/bin. And of course, from the above we know the user "pi" has the permission to execute both test.sh and transmission-gtk.



    Can anybody tell why is this happening?










    share|improve this question









    New contributor




    Alxt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.























      0












      0








      0







      I was configuring crontab with user "pi" to execute an sh script every 30 mins.



      In terminal:crontab -u pi -eI added this line: */30 * * * * /bin/sh /home/pi/test.sh



      And in the script test.sh there three lines:



      #!/bin/sh
      /usr/bin/transmission-gtk
      echo "done" > /home/pi/startup/result.txt


      As a result, every 30 minutes the result.txt updated, anyway the transmission-gtk never shows up. Namely, only 1 (of 2) commands in the test.sh worked.



      But when I manually execute the /home/pi/test.sh in terminal, everything works fine.
      The test.txt updated and the transmission-gtk shows up.



      I know that everything in crontab should be written with absolute-path and I'm pretty sure that the transmission-gtk is in /usr/bin. And of course, from the above we know the user "pi" has the permission to execute both test.sh and transmission-gtk.



      Can anybody tell why is this happening?










      share|improve this question









      New contributor




      Alxt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      I was configuring crontab with user "pi" to execute an sh script every 30 mins.



      In terminal:crontab -u pi -eI added this line: */30 * * * * /bin/sh /home/pi/test.sh



      And in the script test.sh there three lines:



      #!/bin/sh
      /usr/bin/transmission-gtk
      echo "done" > /home/pi/startup/result.txt


      As a result, every 30 minutes the result.txt updated, anyway the transmission-gtk never shows up. Namely, only 1 (of 2) commands in the test.sh worked.



      But when I manually execute the /home/pi/test.sh in terminal, everything works fine.
      The test.txt updated and the transmission-gtk shows up.



      I know that everything in crontab should be written with absolute-path and I'm pretty sure that the transmission-gtk is in /usr/bin. And of course, from the above we know the user "pi" has the permission to execute both test.sh and transmission-gtk.



      Can anybody tell why is this happening?







      shell-script cron raspberry-pi






      share|improve this question









      New contributor




      Alxt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      Alxt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited 23 mins ago









      Rui F Ribeiro

      38.8k1479129




      38.8k1479129






      New contributor




      Alxt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 26 mins ago









      Alxt

      1




      1




      New contributor




      Alxt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Alxt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Alxt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          1 Answer
          1






          active

          oldest

          votes


















          0














          Apparently, transmission-gtk is some graphical program that you wish to start? In that case, you need to tell cron on which display to start it. Try this in your crontab before your line (assuming you're using display 0):



          export DISPLAY=:0


          You should also have error messages in your mail (probably /var/mail/username). That would tell us more about the problem.





          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
            });


            }
            });






            Alxt is a new contributor. Be nice, and check out our Code of Conduct.










            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f490894%2fexecute-sh-script-from-crontab-problem%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            Apparently, transmission-gtk is some graphical program that you wish to start? In that case, you need to tell cron on which display to start it. Try this in your crontab before your line (assuming you're using display 0):



            export DISPLAY=:0


            You should also have error messages in your mail (probably /var/mail/username). That would tell us more about the problem.





            share


























              0














              Apparently, transmission-gtk is some graphical program that you wish to start? In that case, you need to tell cron on which display to start it. Try this in your crontab before your line (assuming you're using display 0):



              export DISPLAY=:0


              You should also have error messages in your mail (probably /var/mail/username). That would tell us more about the problem.





              share
























                0












                0








                0






                Apparently, transmission-gtk is some graphical program that you wish to start? In that case, you need to tell cron on which display to start it. Try this in your crontab before your line (assuming you're using display 0):



                export DISPLAY=:0


                You should also have error messages in your mail (probably /var/mail/username). That would tell us more about the problem.





                share












                Apparently, transmission-gtk is some graphical program that you wish to start? In that case, you need to tell cron on which display to start it. Try this in your crontab before your line (assuming you're using display 0):



                export DISPLAY=:0


                You should also have error messages in your mail (probably /var/mail/username). That would tell us more about the problem.






                share











                share


                share










                answered 6 mins ago









                WerKater

                713




                713






















                    Alxt is a new contributor. Be nice, and check out our Code of Conduct.










                    draft saved

                    draft discarded


















                    Alxt is a new contributor. Be nice, and check out our Code of Conduct.













                    Alxt is a new contributor. Be nice, and check out our Code of Conduct.












                    Alxt is a new contributor. Be nice, and check out our Code of Conduct.
















                    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.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • 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%2f490894%2fexecute-sh-script-from-crontab-problem%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号伴広島線

                    Accessing regular linux commands in Huawei's Dopra Linux