How to run an infinite loop program on startup on a raspberry pi without halting boot up
I have a shell script:
#!/bin/bash
while sudo /home/pi/MyCode; do :; done
echo Error with MyCode
which runs a program in an infinite loop. I want to set up the shell script to run at start-up (which I've done with other bash scripts). However, I don't want the script to halt start-up, or prevent me from being to ssh in.
I've seen a lot of people who have had to wipe and remount their SD cards due to infinite loops be created on start-up. How do I prevent this?
I've tried augmenting the code:
#!/bin/bash
while sudo /home/pi/MyCode &; do :; done
echo Error with MyCode
to run MyCode in the background, but I keep getting an error along the lines
unexpected character before ;
Is there a way to run this script on startup without halting my startup? If so, can it be done in a way that I still have the option of SSH'ing and stopping the script at any time?
linux shell script raspberry-pi infinite-loop
add a comment |
I have a shell script:
#!/bin/bash
while sudo /home/pi/MyCode; do :; done
echo Error with MyCode
which runs a program in an infinite loop. I want to set up the shell script to run at start-up (which I've done with other bash scripts). However, I don't want the script to halt start-up, or prevent me from being to ssh in.
I've seen a lot of people who have had to wipe and remount their SD cards due to infinite loops be created on start-up. How do I prevent this?
I've tried augmenting the code:
#!/bin/bash
while sudo /home/pi/MyCode &; do :; done
echo Error with MyCode
to run MyCode in the background, but I keep getting an error along the lines
unexpected character before ;
Is there a way to run this script on startup without halting my startup? If so, can it be done in a way that I still have the option of SSH'ing and stopping the script at any time?
linux shell script raspberry-pi infinite-loop
I'm not sure i understand the question. I don't have a ' before the #!. #!/bin/bash is the fist line of my bash script.
– JRogerC
Sep 18 '14 at 21:25
I made a type. I meant a/
, which appears to be gone now anyway.
– lzam
Sep 18 '14 at 21:26
add a comment |
I have a shell script:
#!/bin/bash
while sudo /home/pi/MyCode; do :; done
echo Error with MyCode
which runs a program in an infinite loop. I want to set up the shell script to run at start-up (which I've done with other bash scripts). However, I don't want the script to halt start-up, or prevent me from being to ssh in.
I've seen a lot of people who have had to wipe and remount their SD cards due to infinite loops be created on start-up. How do I prevent this?
I've tried augmenting the code:
#!/bin/bash
while sudo /home/pi/MyCode &; do :; done
echo Error with MyCode
to run MyCode in the background, but I keep getting an error along the lines
unexpected character before ;
Is there a way to run this script on startup without halting my startup? If so, can it be done in a way that I still have the option of SSH'ing and stopping the script at any time?
linux shell script raspberry-pi infinite-loop
I have a shell script:
#!/bin/bash
while sudo /home/pi/MyCode; do :; done
echo Error with MyCode
which runs a program in an infinite loop. I want to set up the shell script to run at start-up (which I've done with other bash scripts). However, I don't want the script to halt start-up, or prevent me from being to ssh in.
I've seen a lot of people who have had to wipe and remount their SD cards due to infinite loops be created on start-up. How do I prevent this?
I've tried augmenting the code:
#!/bin/bash
while sudo /home/pi/MyCode &; do :; done
echo Error with MyCode
to run MyCode in the background, but I keep getting an error along the lines
unexpected character before ;
Is there a way to run this script on startup without halting my startup? If so, can it be done in a way that I still have the option of SSH'ing and stopping the script at any time?
linux shell script raspberry-pi infinite-loop
linux shell script raspberry-pi infinite-loop
edited Sep 18 '14 at 20:34
Scott
15.8k113990
15.8k113990
asked Sep 18 '14 at 20:16
JRogerCJRogerC
111
111
I'm not sure i understand the question. I don't have a ' before the #!. #!/bin/bash is the fist line of my bash script.
– JRogerC
Sep 18 '14 at 21:25
I made a type. I meant a/
, which appears to be gone now anyway.
– lzam
Sep 18 '14 at 21:26
add a comment |
I'm not sure i understand the question. I don't have a ' before the #!. #!/bin/bash is the fist line of my bash script.
– JRogerC
Sep 18 '14 at 21:25
I made a type. I meant a/
, which appears to be gone now anyway.
– lzam
Sep 18 '14 at 21:26
I'm not sure i understand the question. I don't have a ' before the #!. #!/bin/bash is the fist line of my bash script.
– JRogerC
Sep 18 '14 at 21:25
I'm not sure i understand the question. I don't have a ' before the #!. #!/bin/bash is the fist line of my bash script.
– JRogerC
Sep 18 '14 at 21:25
I made a type. I meant a
/
, which appears to be gone now anyway.– lzam
Sep 18 '14 at 21:26
I made a type. I meant a
/
, which appears to be gone now anyway.– lzam
Sep 18 '14 at 21:26
add a comment |
2 Answers
2
active
oldest
votes
Remove the :
It generates the syntax error. Alternatively insert a sleep 1 or something similar instead of it, bash can freak out on empty while ... do loops. If you go with this approach you shoukd also lose the &
If you leave it in you will create a new process for every iteration of the loop, grinding your pi to a halt once all your ram is taken.
Also use ./myCode.sh or exec myCode.sh to be shure it actually runs the script.
If you are running raspbian i would also suggest using upstart. This allows for a more controlled way of triggering stuff during boot, like only run once the filesystem is available.
Maybe post the code you want to run also, i can check if there are no other errors. Good for my bash-fu training :-)
I had this code running for 36 hours straight without error, so I don't think the : is giving me any problems. However, the code is driving an external piece of hardware, and giving it a second of rest would not be a bad thing.
– JRogerC
Sep 18 '14 at 21:24
add a comment |
Put the loop in its own script, running in the background:
startup script:
#!/bin/bash
mainloop.sh &
echo Should get here
mainloop.sh:
#!/bin/bash
while sudo /home/pi/MyCode; do :; done
There's probably a way to do this in one script, I'm not familiar enough with Bash to do it though.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
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: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
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%2fsuperuser.com%2fquestions%2f813666%2fhow-to-run-an-infinite-loop-program-on-startup-on-a-raspberry-pi-without-halting%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
Remove the :
It generates the syntax error. Alternatively insert a sleep 1 or something similar instead of it, bash can freak out on empty while ... do loops. If you go with this approach you shoukd also lose the &
If you leave it in you will create a new process for every iteration of the loop, grinding your pi to a halt once all your ram is taken.
Also use ./myCode.sh or exec myCode.sh to be shure it actually runs the script.
If you are running raspbian i would also suggest using upstart. This allows for a more controlled way of triggering stuff during boot, like only run once the filesystem is available.
Maybe post the code you want to run also, i can check if there are no other errors. Good for my bash-fu training :-)
I had this code running for 36 hours straight without error, so I don't think the : is giving me any problems. However, the code is driving an external piece of hardware, and giving it a second of rest would not be a bad thing.
– JRogerC
Sep 18 '14 at 21:24
add a comment |
Remove the :
It generates the syntax error. Alternatively insert a sleep 1 or something similar instead of it, bash can freak out on empty while ... do loops. If you go with this approach you shoukd also lose the &
If you leave it in you will create a new process for every iteration of the loop, grinding your pi to a halt once all your ram is taken.
Also use ./myCode.sh or exec myCode.sh to be shure it actually runs the script.
If you are running raspbian i would also suggest using upstart. This allows for a more controlled way of triggering stuff during boot, like only run once the filesystem is available.
Maybe post the code you want to run also, i can check if there are no other errors. Good for my bash-fu training :-)
I had this code running for 36 hours straight without error, so I don't think the : is giving me any problems. However, the code is driving an external piece of hardware, and giving it a second of rest would not be a bad thing.
– JRogerC
Sep 18 '14 at 21:24
add a comment |
Remove the :
It generates the syntax error. Alternatively insert a sleep 1 or something similar instead of it, bash can freak out on empty while ... do loops. If you go with this approach you shoukd also lose the &
If you leave it in you will create a new process for every iteration of the loop, grinding your pi to a halt once all your ram is taken.
Also use ./myCode.sh or exec myCode.sh to be shure it actually runs the script.
If you are running raspbian i would also suggest using upstart. This allows for a more controlled way of triggering stuff during boot, like only run once the filesystem is available.
Maybe post the code you want to run also, i can check if there are no other errors. Good for my bash-fu training :-)
Remove the :
It generates the syntax error. Alternatively insert a sleep 1 or something similar instead of it, bash can freak out on empty while ... do loops. If you go with this approach you shoukd also lose the &
If you leave it in you will create a new process for every iteration of the loop, grinding your pi to a halt once all your ram is taken.
Also use ./myCode.sh or exec myCode.sh to be shure it actually runs the script.
If you are running raspbian i would also suggest using upstart. This allows for a more controlled way of triggering stuff during boot, like only run once the filesystem is available.
Maybe post the code you want to run also, i can check if there are no other errors. Good for my bash-fu training :-)
edited Sep 18 '14 at 21:27
answered Sep 18 '14 at 21:03
JakeJake
343212
343212
I had this code running for 36 hours straight without error, so I don't think the : is giving me any problems. However, the code is driving an external piece of hardware, and giving it a second of rest would not be a bad thing.
– JRogerC
Sep 18 '14 at 21:24
add a comment |
I had this code running for 36 hours straight without error, so I don't think the : is giving me any problems. However, the code is driving an external piece of hardware, and giving it a second of rest would not be a bad thing.
– JRogerC
Sep 18 '14 at 21:24
I had this code running for 36 hours straight without error, so I don't think the : is giving me any problems. However, the code is driving an external piece of hardware, and giving it a second of rest would not be a bad thing.
– JRogerC
Sep 18 '14 at 21:24
I had this code running for 36 hours straight without error, so I don't think the : is giving me any problems. However, the code is driving an external piece of hardware, and giving it a second of rest would not be a bad thing.
– JRogerC
Sep 18 '14 at 21:24
add a comment |
Put the loop in its own script, running in the background:
startup script:
#!/bin/bash
mainloop.sh &
echo Should get here
mainloop.sh:
#!/bin/bash
while sudo /home/pi/MyCode; do :; done
There's probably a way to do this in one script, I'm not familiar enough with Bash to do it though.
add a comment |
Put the loop in its own script, running in the background:
startup script:
#!/bin/bash
mainloop.sh &
echo Should get here
mainloop.sh:
#!/bin/bash
while sudo /home/pi/MyCode; do :; done
There's probably a way to do this in one script, I'm not familiar enough with Bash to do it though.
add a comment |
Put the loop in its own script, running in the background:
startup script:
#!/bin/bash
mainloop.sh &
echo Should get here
mainloop.sh:
#!/bin/bash
while sudo /home/pi/MyCode; do :; done
There's probably a way to do this in one script, I'm not familiar enough with Bash to do it though.
Put the loop in its own script, running in the background:
startup script:
#!/bin/bash
mainloop.sh &
echo Should get here
mainloop.sh:
#!/bin/bash
while sudo /home/pi/MyCode; do :; done
There's probably a way to do this in one script, I'm not familiar enough with Bash to do it though.
answered Oct 27 '14 at 14:24
baochanbaochan
88968
88968
add a comment |
add a comment |
Thanks for contributing an answer to Super User!
- 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%2fsuperuser.com%2fquestions%2f813666%2fhow-to-run-an-infinite-loop-program-on-startup-on-a-raspberry-pi-without-halting%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
I'm not sure i understand the question. I don't have a ' before the #!. #!/bin/bash is the fist line of my bash script.
– JRogerC
Sep 18 '14 at 21:25
I made a type. I meant a
/
, which appears to be gone now anyway.– lzam
Sep 18 '14 at 21:26