I want to run a python3 script on startup and in an endless loop on my raspberry pi Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern) Congratulation Joan for 50k!High usage of cpu and ram with while loopWhy are the buttons that I am using with my Pi inverted?Using init.d script to start my python program on startupHow can I get my init.d script to be the last startup item on runlevel 4?Why won't `gpio` work from an init script?How to run a Python script on a raspberry pi via webserver?GPIO unexpected behaviour after 10 hours of running python scriptHow to resolve “RuntimeError: Unable to export GPIO. Try to run as root!”?How to start and stop python script using buttonRun a system startup script after network and DNS resolution are available

Do any jurisdictions seriously consider reclassifying social media websites as publishers?

A term for a woman complaining about things/begging in a cute/childish way

How to write this math term? with cases it isn't working

Did Deadpool rescue all of the X-Force?

Why do we bend a book to keep it straight?

Can a new player join a group only when a new campaign starts?

Take 2! Is this homebrew Lady of Pain warlock patron balanced?

How does light 'choose' between wave and particle behaviour?

Can an alien society believe that their star system is the universe?

Is it fair for a professor to grade us on the possession of past papers?

Amount of permutations on an NxNxN Rubik's Cube

How to write the following sign?

How do living politicians protect their readily obtainable signatures from misuse?

Should I use a zero-interest credit card for a large one-time purchase?

Why doesn't SQL Optimizer use my constraint?

AppleTVs create a chatty alternate WiFi network

How do I use the new nonlinear finite element in Mathematica 12 for this equation?

How were pictures turned from film to a big picture in a picture frame before digital scanning?

Can anything be seen from the center of the Boötes void? How dark would it be?

How to install press fit bottom bracket into new frame

Disembodied hand growing fangs

Why is Nikon 1.4g better when Nikon 1.8g is sharper?

Time to Settle Down!

What is the appropriate index architecture when forced to implement IsDeleted (soft deletes)?



I want to run a python3 script on startup and in an endless loop on my raspberry pi



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern)
Congratulation Joan for 50k!High usage of cpu and ram with while loopWhy are the buttons that I am using with my Pi inverted?Using init.d script to start my python program on startupHow can I get my init.d script to be the last startup item on runlevel 4?Why won't `gpio` work from an init script?How to run a Python script on a raspberry pi via webserver?GPIO unexpected behaviour after 10 hours of running python scriptHow to resolve “RuntimeError: Unable to export GPIO. Try to run as root!”?How to start and stop python script using buttonRun a system startup script after network and DNS resolution are available



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








2















I have created a smart vending machine using my Raspberry Pi. For now, I open the pi using ssh and run the script manually for every transaction.



I want to automate the process and run the script on startup and after execution I want it to run again in a loop till shut down.



If possible I can also map it to a physical button which I connect to the pi and whenever the button is pressed the script should run using python3.



How can I possibly do any of the above two things?










share|improve this question




























    2















    I have created a smart vending machine using my Raspberry Pi. For now, I open the pi using ssh and run the script manually for every transaction.



    I want to automate the process and run the script on startup and after execution I want it to run again in a loop till shut down.



    If possible I can also map it to a physical button which I connect to the pi and whenever the button is pressed the script should run using python3.



    How can I possibly do any of the above two things?










    share|improve this question
























      2












      2








      2


      1






      I have created a smart vending machine using my Raspberry Pi. For now, I open the pi using ssh and run the script manually for every transaction.



      I want to automate the process and run the script on startup and after execution I want it to run again in a loop till shut down.



      If possible I can also map it to a physical button which I connect to the pi and whenever the button is pressed the script should run using python3.



      How can I possibly do any of the above two things?










      share|improve this question














      I have created a smart vending machine using my Raspberry Pi. For now, I open the pi using ssh and run the script manually for every transaction.



      I want to automate the process and run the script on startup and after execution I want it to run again in a loop till shut down.



      If possible I can also map it to a physical button which I connect to the pi and whenever the button is pressed the script should run using python3.



      How can I possibly do any of the above two things?







      raspbian pi-3 gpio python-3 init.d






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 6 hours ago









      Adnan FarooquiAdnan Farooqui

      265




      265




















          2 Answers
          2






          active

          oldest

          votes


















          2














          We were able to use Supervisor (http://supervisord.org/
          ) to successfully have a python script run in the background on boot.



          Tutorial I Used to set it up:
          https://serversforhackers.com/c/monitoring-processes-with-supervisord



          Supervisor runs as a service and you have a configuration file where you set up your scripts that you want it to run:



          [program:your_script_name]
          command=python3 your_script_name.py
          directory=/your/file/location/here
          autostart=true
          autorestart=true


          You could either have Supervisor run your vending machine scripts on start up or start a script that is waiting for your button press which would then launch your main vending machine script.



          Steps: (Using terminal)



          sudo apt-get install -y supervisor


          Start the service



          sudo service supervisor start


          Create your config info



          sudo nano /etc/supervisor/conf.d/yourscriptname.conf


          Enter the config info and save the file:



          [program:your_script_name]
          command=python3 your_script_name.py
          directory=/your/file/location/here
          autostart=true
          autorestart=true


          Update Supervisor to include your new config file



          supervisorctl reread
          supervisorctl update


          See if your service started



          supervisorctl


          Start and stop the your script from running



          supervisorctl stop your_script_name
          supervisorctl start your_script_name





          share|improve this answer










          New contributor




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



























            2














            Your script is a typical use of a service. Usually a service is started once and then it is running in background until it is stopped by the service manager. The service manager can restart a script but it isn't made to be used for loops because it is working on system level with logging and dependency checking and all to manage services.



            So first you should program the endless loop within the script. Within this loop you can also check if the button is pressed and do what is needed then.



            The default init system and service manager is systemd on Raspbian and it manages services with Unit files. So you should start with a simple Unit file for your service with:



            rpi ~$ sudo systemctl --full --force edit myscript.service


            In the empty editor insert these statements, save them and quit the editor:



            [Unit]
            Description=My python3 script
            After=multi-user.target

            [Service]
            ExecStart=/full/path/to/myscript.py

            [Install]
            WantedBy=multi-user.target


            Then enable it to be started on boot up:



            rpi ~$ sudo systemctl enable myscript.service


            You can look at it's status with:



            rpi ~$ systemctl status myscript.service


            It may be that it isn't running on the first attempt because your script needs some environment conditions. We will see. For some environment settings you can look at man systemd.exec.






            share|improve this answer























              Your Answer






              StackExchange.ifUsing("editor", function ()
              return StackExchange.using("schematics", function ()
              StackExchange.schematics.init();
              );
              , "cicuitlab");

              StackExchange.ready(function()
              var channelOptions =
              tags: "".split(" "),
              id: "447"
              ;
              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%2fraspberrypi.stackexchange.com%2fquestions%2f96673%2fi-want-to-run-a-python3-script-on-startup-and-in-an-endless-loop-on-my-raspberry%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









              2














              We were able to use Supervisor (http://supervisord.org/
              ) to successfully have a python script run in the background on boot.



              Tutorial I Used to set it up:
              https://serversforhackers.com/c/monitoring-processes-with-supervisord



              Supervisor runs as a service and you have a configuration file where you set up your scripts that you want it to run:



              [program:your_script_name]
              command=python3 your_script_name.py
              directory=/your/file/location/here
              autostart=true
              autorestart=true


              You could either have Supervisor run your vending machine scripts on start up or start a script that is waiting for your button press which would then launch your main vending machine script.



              Steps: (Using terminal)



              sudo apt-get install -y supervisor


              Start the service



              sudo service supervisor start


              Create your config info



              sudo nano /etc/supervisor/conf.d/yourscriptname.conf


              Enter the config info and save the file:



              [program:your_script_name]
              command=python3 your_script_name.py
              directory=/your/file/location/here
              autostart=true
              autorestart=true


              Update Supervisor to include your new config file



              supervisorctl reread
              supervisorctl update


              See if your service started



              supervisorctl


              Start and stop the your script from running



              supervisorctl stop your_script_name
              supervisorctl start your_script_name





              share|improve this answer










              New contributor




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
























                2














                We were able to use Supervisor (http://supervisord.org/
                ) to successfully have a python script run in the background on boot.



                Tutorial I Used to set it up:
                https://serversforhackers.com/c/monitoring-processes-with-supervisord



                Supervisor runs as a service and you have a configuration file where you set up your scripts that you want it to run:



                [program:your_script_name]
                command=python3 your_script_name.py
                directory=/your/file/location/here
                autostart=true
                autorestart=true


                You could either have Supervisor run your vending machine scripts on start up or start a script that is waiting for your button press which would then launch your main vending machine script.



                Steps: (Using terminal)



                sudo apt-get install -y supervisor


                Start the service



                sudo service supervisor start


                Create your config info



                sudo nano /etc/supervisor/conf.d/yourscriptname.conf


                Enter the config info and save the file:



                [program:your_script_name]
                command=python3 your_script_name.py
                directory=/your/file/location/here
                autostart=true
                autorestart=true


                Update Supervisor to include your new config file



                supervisorctl reread
                supervisorctl update


                See if your service started



                supervisorctl


                Start and stop the your script from running



                supervisorctl stop your_script_name
                supervisorctl start your_script_name





                share|improve this answer










                New contributor




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






















                  2












                  2








                  2







                  We were able to use Supervisor (http://supervisord.org/
                  ) to successfully have a python script run in the background on boot.



                  Tutorial I Used to set it up:
                  https://serversforhackers.com/c/monitoring-processes-with-supervisord



                  Supervisor runs as a service and you have a configuration file where you set up your scripts that you want it to run:



                  [program:your_script_name]
                  command=python3 your_script_name.py
                  directory=/your/file/location/here
                  autostart=true
                  autorestart=true


                  You could either have Supervisor run your vending machine scripts on start up or start a script that is waiting for your button press which would then launch your main vending machine script.



                  Steps: (Using terminal)



                  sudo apt-get install -y supervisor


                  Start the service



                  sudo service supervisor start


                  Create your config info



                  sudo nano /etc/supervisor/conf.d/yourscriptname.conf


                  Enter the config info and save the file:



                  [program:your_script_name]
                  command=python3 your_script_name.py
                  directory=/your/file/location/here
                  autostart=true
                  autorestart=true


                  Update Supervisor to include your new config file



                  supervisorctl reread
                  supervisorctl update


                  See if your service started



                  supervisorctl


                  Start and stop the your script from running



                  supervisorctl stop your_script_name
                  supervisorctl start your_script_name





                  share|improve this answer










                  New contributor




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










                  We were able to use Supervisor (http://supervisord.org/
                  ) to successfully have a python script run in the background on boot.



                  Tutorial I Used to set it up:
                  https://serversforhackers.com/c/monitoring-processes-with-supervisord



                  Supervisor runs as a service and you have a configuration file where you set up your scripts that you want it to run:



                  [program:your_script_name]
                  command=python3 your_script_name.py
                  directory=/your/file/location/here
                  autostart=true
                  autorestart=true


                  You could either have Supervisor run your vending machine scripts on start up or start a script that is waiting for your button press which would then launch your main vending machine script.



                  Steps: (Using terminal)



                  sudo apt-get install -y supervisor


                  Start the service



                  sudo service supervisor start


                  Create your config info



                  sudo nano /etc/supervisor/conf.d/yourscriptname.conf


                  Enter the config info and save the file:



                  [program:your_script_name]
                  command=python3 your_script_name.py
                  directory=/your/file/location/here
                  autostart=true
                  autorestart=true


                  Update Supervisor to include your new config file



                  supervisorctl reread
                  supervisorctl update


                  See if your service started



                  supervisorctl


                  Start and stop the your script from running



                  supervisorctl stop your_script_name
                  supervisorctl start your_script_name






                  share|improve this answer










                  New contributor




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



                  share|improve this answer








                  edited 4 hours ago





















                  New contributor




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









                  answered 6 hours ago









                  AaronDoesDevAaronDoesDev

                  212




                  212




                  New contributor




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





                  New contributor





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






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























                      2














                      Your script is a typical use of a service. Usually a service is started once and then it is running in background until it is stopped by the service manager. The service manager can restart a script but it isn't made to be used for loops because it is working on system level with logging and dependency checking and all to manage services.



                      So first you should program the endless loop within the script. Within this loop you can also check if the button is pressed and do what is needed then.



                      The default init system and service manager is systemd on Raspbian and it manages services with Unit files. So you should start with a simple Unit file for your service with:



                      rpi ~$ sudo systemctl --full --force edit myscript.service


                      In the empty editor insert these statements, save them and quit the editor:



                      [Unit]
                      Description=My python3 script
                      After=multi-user.target

                      [Service]
                      ExecStart=/full/path/to/myscript.py

                      [Install]
                      WantedBy=multi-user.target


                      Then enable it to be started on boot up:



                      rpi ~$ sudo systemctl enable myscript.service


                      You can look at it's status with:



                      rpi ~$ systemctl status myscript.service


                      It may be that it isn't running on the first attempt because your script needs some environment conditions. We will see. For some environment settings you can look at man systemd.exec.






                      share|improve this answer



























                        2














                        Your script is a typical use of a service. Usually a service is started once and then it is running in background until it is stopped by the service manager. The service manager can restart a script but it isn't made to be used for loops because it is working on system level with logging and dependency checking and all to manage services.



                        So first you should program the endless loop within the script. Within this loop you can also check if the button is pressed and do what is needed then.



                        The default init system and service manager is systemd on Raspbian and it manages services with Unit files. So you should start with a simple Unit file for your service with:



                        rpi ~$ sudo systemctl --full --force edit myscript.service


                        In the empty editor insert these statements, save them and quit the editor:



                        [Unit]
                        Description=My python3 script
                        After=multi-user.target

                        [Service]
                        ExecStart=/full/path/to/myscript.py

                        [Install]
                        WantedBy=multi-user.target


                        Then enable it to be started on boot up:



                        rpi ~$ sudo systemctl enable myscript.service


                        You can look at it's status with:



                        rpi ~$ systemctl status myscript.service


                        It may be that it isn't running on the first attempt because your script needs some environment conditions. We will see. For some environment settings you can look at man systemd.exec.






                        share|improve this answer

























                          2












                          2








                          2







                          Your script is a typical use of a service. Usually a service is started once and then it is running in background until it is stopped by the service manager. The service manager can restart a script but it isn't made to be used for loops because it is working on system level with logging and dependency checking and all to manage services.



                          So first you should program the endless loop within the script. Within this loop you can also check if the button is pressed and do what is needed then.



                          The default init system and service manager is systemd on Raspbian and it manages services with Unit files. So you should start with a simple Unit file for your service with:



                          rpi ~$ sudo systemctl --full --force edit myscript.service


                          In the empty editor insert these statements, save them and quit the editor:



                          [Unit]
                          Description=My python3 script
                          After=multi-user.target

                          [Service]
                          ExecStart=/full/path/to/myscript.py

                          [Install]
                          WantedBy=multi-user.target


                          Then enable it to be started on boot up:



                          rpi ~$ sudo systemctl enable myscript.service


                          You can look at it's status with:



                          rpi ~$ systemctl status myscript.service


                          It may be that it isn't running on the first attempt because your script needs some environment conditions. We will see. For some environment settings you can look at man systemd.exec.






                          share|improve this answer













                          Your script is a typical use of a service. Usually a service is started once and then it is running in background until it is stopped by the service manager. The service manager can restart a script but it isn't made to be used for loops because it is working on system level with logging and dependency checking and all to manage services.



                          So first you should program the endless loop within the script. Within this loop you can also check if the button is pressed and do what is needed then.



                          The default init system and service manager is systemd on Raspbian and it manages services with Unit files. So you should start with a simple Unit file for your service with:



                          rpi ~$ sudo systemctl --full --force edit myscript.service


                          In the empty editor insert these statements, save them and quit the editor:



                          [Unit]
                          Description=My python3 script
                          After=multi-user.target

                          [Service]
                          ExecStart=/full/path/to/myscript.py

                          [Install]
                          WantedBy=multi-user.target


                          Then enable it to be started on boot up:



                          rpi ~$ sudo systemctl enable myscript.service


                          You can look at it's status with:



                          rpi ~$ systemctl status myscript.service


                          It may be that it isn't running on the first attempt because your script needs some environment conditions. We will see. For some environment settings you can look at man systemd.exec.







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered 1 hour ago









                          IngoIngo

                          9,4093952




                          9,4093952



























                              draft saved

                              draft discarded
















































                              Thanks for contributing an answer to Raspberry Pi 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%2fraspberrypi.stackexchange.com%2fquestions%2f96673%2fi-want-to-run-a-python3-script-on-startup-and-in-an-endless-loop-on-my-raspberry%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

                              Era Viking Índice Início da Era Viquingue | Cotidiano | Sociedade | Língua | Religião | A arte | As primeiras cidades | As viagens dos viquingues | Viquingues do Oeste e Leste | Fim da Era Viquingue | Fontes históricas | Referências Bibliografia | Ligações externas | Menu de navegação«Sverige då!»«Handel I vikingetid»«O que é Nórdico Antigo»Mito, magia e religião na volsunga saga Um olhar sobre a trajetória mítica do herói sigurd«Bonden var den verklige vikingen»«Vikingatiden»«Vikingatiden»«Vinland»«Guerreiras de Óðinn: As Valkyrjor na Mitologia Viking»1519-9053«Esculpindo símbolos e seres: A arte viking em pedras rúnicas»1679-9313Historia - Tema: VikingarnaAventura e Magia no Mundo das Sagas IslandesasEra Vikinge

                              What's the metal clinking sound at the end of credits in Avengers: Endgame?What makes Thanos so strong in Avengers: Endgame?Who is the character that appears at the end of Endgame?What happens to Mjolnir (Thor's hammer) at the end of Endgame?The People's Ages in Avengers: EndgameWhat did Nebula do in Avengers: Endgame?Messing with time in the Avengers: Endgame climaxAvengers: Endgame timelineWhat are the time-travel rules in Avengers Endgame?Why use this song in Avengers: Endgame Opening Logo Sequence?Peggy's age in Avengers Endgame

                              Are there legal definitions of ethnicities/races? The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Legal definitions in the United StatesAre there truly legal limits on US interest rates?Are gender identity and sexual orientation federally protected?Why is there an apparent legal bias against digital services?What limits are there to the powers of individual judges in the United States legal system?Are women only scholarships legal under Irish / EU law?Is the term “race” defined by Public Law enacted by Congress of the United StatesIs there a legal definition of race in the US?Neighbors are spying for landlord on Renters is it legal?Are Protected Classes Bi-directional?