Running Shell and Python Scripts (that write to files) with Launchd










0














I am surprised by the lack of information/videos on the internet about launchd. Anyways, I am fairly new to writing shell scripts and python in the Mac terminal, but am trying to automate a script to write the datetime every 20 seconds to a file.



Below is my plist file written under ~/Library/LaunchAgents.



<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.py.plist</string>
<key>RunAtLoad</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/Users/sammahle/bin/python_file</string>
</array>
<key>StartCalendarInterval</key>
<integer>20</integer>
</dict>
</plist>


The 'python_file' referenced in the script is



#!/usr/bin/python
import datetime
print 'Hello World'
datetime1 = str(datetime.datetime.now())
with open('file.txt','w') as f:
f.write(datetime1)


and when I do launchctl list I find " - 1 com.example.py.plist"
I ran the same thing for the shell script below and again received the status code "1", which according to LaunchD Plist not working means “Exit code 1 means the script exited with an error condition. If it exited with a 0 it would mean there were no errors.”



#!/bin/bash
echo "Hello World!" >> file.txt


My end goal is to run complex python scripts daily without having the program needing to be running all the time. If anyone knows a better solution (I choose launchd over cron because it is "preferred") please let me know.










share|improve this question





















  • Try replacing ProgramArguments with Program
    – Mark Setchell
    Nov 13 '18 at 0:06










  • Tried that to no avail. Any other ideas?
    – Sam Mahle
    Nov 13 '18 at 1:16











  • Did you make your script executable? Start Terminal and run chmod +x /Users/sammahle/bin/python_file
    – Mark Setchell
    Nov 13 '18 at 7:15










  • Yes, do I have to edit the permission of the file I am writing to?
    – Sam Mahle
    Nov 13 '18 at 21:00










  • Three things... 1) Try writing to a file with an absolute path so you are sure where you are writing, e.g. /tmp/file.txt 2) Open up the permissions on that file with chmod 777 /tmp/file.txt 3) Try running the script directly from the Terminal /Users/sammahle/bin/python_file and make sure it works like that.
    – Mark Setchell
    Nov 13 '18 at 21:16















0














I am surprised by the lack of information/videos on the internet about launchd. Anyways, I am fairly new to writing shell scripts and python in the Mac terminal, but am trying to automate a script to write the datetime every 20 seconds to a file.



Below is my plist file written under ~/Library/LaunchAgents.



<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.py.plist</string>
<key>RunAtLoad</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/Users/sammahle/bin/python_file</string>
</array>
<key>StartCalendarInterval</key>
<integer>20</integer>
</dict>
</plist>


The 'python_file' referenced in the script is



#!/usr/bin/python
import datetime
print 'Hello World'
datetime1 = str(datetime.datetime.now())
with open('file.txt','w') as f:
f.write(datetime1)


and when I do launchctl list I find " - 1 com.example.py.plist"
I ran the same thing for the shell script below and again received the status code "1", which according to LaunchD Plist not working means “Exit code 1 means the script exited with an error condition. If it exited with a 0 it would mean there were no errors.”



#!/bin/bash
echo "Hello World!" >> file.txt


My end goal is to run complex python scripts daily without having the program needing to be running all the time. If anyone knows a better solution (I choose launchd over cron because it is "preferred") please let me know.










share|improve this question





















  • Try replacing ProgramArguments with Program
    – Mark Setchell
    Nov 13 '18 at 0:06










  • Tried that to no avail. Any other ideas?
    – Sam Mahle
    Nov 13 '18 at 1:16











  • Did you make your script executable? Start Terminal and run chmod +x /Users/sammahle/bin/python_file
    – Mark Setchell
    Nov 13 '18 at 7:15










  • Yes, do I have to edit the permission of the file I am writing to?
    – Sam Mahle
    Nov 13 '18 at 21:00










  • Three things... 1) Try writing to a file with an absolute path so you are sure where you are writing, e.g. /tmp/file.txt 2) Open up the permissions on that file with chmod 777 /tmp/file.txt 3) Try running the script directly from the Terminal /Users/sammahle/bin/python_file and make sure it works like that.
    – Mark Setchell
    Nov 13 '18 at 21:16













0












0








0







I am surprised by the lack of information/videos on the internet about launchd. Anyways, I am fairly new to writing shell scripts and python in the Mac terminal, but am trying to automate a script to write the datetime every 20 seconds to a file.



Below is my plist file written under ~/Library/LaunchAgents.



<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.py.plist</string>
<key>RunAtLoad</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/Users/sammahle/bin/python_file</string>
</array>
<key>StartCalendarInterval</key>
<integer>20</integer>
</dict>
</plist>


The 'python_file' referenced in the script is



#!/usr/bin/python
import datetime
print 'Hello World'
datetime1 = str(datetime.datetime.now())
with open('file.txt','w') as f:
f.write(datetime1)


and when I do launchctl list I find " - 1 com.example.py.plist"
I ran the same thing for the shell script below and again received the status code "1", which according to LaunchD Plist not working means “Exit code 1 means the script exited with an error condition. If it exited with a 0 it would mean there were no errors.”



#!/bin/bash
echo "Hello World!" >> file.txt


My end goal is to run complex python scripts daily without having the program needing to be running all the time. If anyone knows a better solution (I choose launchd over cron because it is "preferred") please let me know.










share|improve this question













I am surprised by the lack of information/videos on the internet about launchd. Anyways, I am fairly new to writing shell scripts and python in the Mac terminal, but am trying to automate a script to write the datetime every 20 seconds to a file.



Below is my plist file written under ~/Library/LaunchAgents.



<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.py.plist</string>
<key>RunAtLoad</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/Users/sammahle/bin/python_file</string>
</array>
<key>StartCalendarInterval</key>
<integer>20</integer>
</dict>
</plist>


The 'python_file' referenced in the script is



#!/usr/bin/python
import datetime
print 'Hello World'
datetime1 = str(datetime.datetime.now())
with open('file.txt','w') as f:
f.write(datetime1)


and when I do launchctl list I find " - 1 com.example.py.plist"
I ran the same thing for the shell script below and again received the status code "1", which according to LaunchD Plist not working means “Exit code 1 means the script exited with an error condition. If it exited with a 0 it would mean there were no errors.”



#!/bin/bash
echo "Hello World!" >> file.txt


My end goal is to run complex python scripts daily without having the program needing to be running all the time. If anyone knows a better solution (I choose launchd over cron because it is "preferred") please let me know.







python shell automation cron launchd






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 12 '18 at 23:30









Sam Mahle

52




52











  • Try replacing ProgramArguments with Program
    – Mark Setchell
    Nov 13 '18 at 0:06










  • Tried that to no avail. Any other ideas?
    – Sam Mahle
    Nov 13 '18 at 1:16











  • Did you make your script executable? Start Terminal and run chmod +x /Users/sammahle/bin/python_file
    – Mark Setchell
    Nov 13 '18 at 7:15










  • Yes, do I have to edit the permission of the file I am writing to?
    – Sam Mahle
    Nov 13 '18 at 21:00










  • Three things... 1) Try writing to a file with an absolute path so you are sure where you are writing, e.g. /tmp/file.txt 2) Open up the permissions on that file with chmod 777 /tmp/file.txt 3) Try running the script directly from the Terminal /Users/sammahle/bin/python_file and make sure it works like that.
    – Mark Setchell
    Nov 13 '18 at 21:16
















  • Try replacing ProgramArguments with Program
    – Mark Setchell
    Nov 13 '18 at 0:06










  • Tried that to no avail. Any other ideas?
    – Sam Mahle
    Nov 13 '18 at 1:16











  • Did you make your script executable? Start Terminal and run chmod +x /Users/sammahle/bin/python_file
    – Mark Setchell
    Nov 13 '18 at 7:15










  • Yes, do I have to edit the permission of the file I am writing to?
    – Sam Mahle
    Nov 13 '18 at 21:00










  • Three things... 1) Try writing to a file with an absolute path so you are sure where you are writing, e.g. /tmp/file.txt 2) Open up the permissions on that file with chmod 777 /tmp/file.txt 3) Try running the script directly from the Terminal /Users/sammahle/bin/python_file and make sure it works like that.
    – Mark Setchell
    Nov 13 '18 at 21:16















Try replacing ProgramArguments with Program
– Mark Setchell
Nov 13 '18 at 0:06




Try replacing ProgramArguments with Program
– Mark Setchell
Nov 13 '18 at 0:06












Tried that to no avail. Any other ideas?
– Sam Mahle
Nov 13 '18 at 1:16





Tried that to no avail. Any other ideas?
– Sam Mahle
Nov 13 '18 at 1:16













Did you make your script executable? Start Terminal and run chmod +x /Users/sammahle/bin/python_file
– Mark Setchell
Nov 13 '18 at 7:15




Did you make your script executable? Start Terminal and run chmod +x /Users/sammahle/bin/python_file
– Mark Setchell
Nov 13 '18 at 7:15












Yes, do I have to edit the permission of the file I am writing to?
– Sam Mahle
Nov 13 '18 at 21:00




Yes, do I have to edit the permission of the file I am writing to?
– Sam Mahle
Nov 13 '18 at 21:00












Three things... 1) Try writing to a file with an absolute path so you are sure where you are writing, e.g. /tmp/file.txt 2) Open up the permissions on that file with chmod 777 /tmp/file.txt 3) Try running the script directly from the Terminal /Users/sammahle/bin/python_file and make sure it works like that.
– Mark Setchell
Nov 13 '18 at 21:16




Three things... 1) Try writing to a file with an absolute path so you are sure where you are writing, e.g. /tmp/file.txt 2) Open up the permissions on that file with chmod 777 /tmp/file.txt 3) Try running the script directly from the Terminal /Users/sammahle/bin/python_file and make sure it works like that.
– Mark Setchell
Nov 13 '18 at 21:16












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
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
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53271617%2frunning-shell-and-python-scripts-that-write-to-files-with-launchd%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • 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%2fstackoverflow.com%2fquestions%2f53271617%2frunning-shell-and-python-scripts-that-write-to-files-with-launchd%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

Top Tejano songwriter Luis Silva dead of heart attack at 64

政党

天津地下鉄3号線