Running Net Core Program On MacOS Launchd Startup Script
I created a script which used a thread to keep running every minute. The script is to inform me if there is changes in the public IP. This is the NetCore app:
static void Main(string args)
try
var timer = new System.Threading.Timer(e => CheckIP(), null,
TimeSpan.Zero, TimeSpan.FromMinutes(1));
Console.ReadLine();
catch (Exception e)
Console.WriteLine("Error Main(): " + e.Message);
public static void CheckIP()
try
!_CurrentIp.Equals(externalip))
_CurrentIp = externalip;
NotifyChanges(); //Notify me if IP is changed via some HttpClient post
Console.WriteLine("At: " + DateTime.Now + "
catch (Exception e)
Console.WriteLine("Error (): " + e.Message);
If I run the script using: dotnet /Users/alvinalvin/Scripts/ReportIP.sh it runs fine. This is the ReportIP.sh:
#!/bin/bash
/usr/local/share/dotnet/dotnet /Users/alvinalvin/Scripts/MyHome/MyHome.dll
Then I use launchd to launch the script when startup. This the /Library/LaunchDaemons/com.startup.plist
<?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.startup</string>
<key>ProgramArguments</key>
<array>
<string>/Users/alvinalvin/Scripts/ReportIP.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/startup.stdout</string>
<key>StandardErrorPath</key>
<string>/tmp/startup.stderr</string>
</dict>
</plist>
The result from the error is this:
(com.startup): Service only ran for 0 seconds. Pushing respawn out by
10 seconds.
I suppose these are the problem:
- Cannot run app with thread in it
- Console.ReadLine() is the problem
because it runs in the background - Console.WriteLine() causing the
problem because there is no console is running
But I am not sure what is happening here. I need help.
Is there a way to achieve this?
c# macos asp.net-core
add a comment |
I created a script which used a thread to keep running every minute. The script is to inform me if there is changes in the public IP. This is the NetCore app:
static void Main(string args)
try
var timer = new System.Threading.Timer(e => CheckIP(), null,
TimeSpan.Zero, TimeSpan.FromMinutes(1));
Console.ReadLine();
catch (Exception e)
Console.WriteLine("Error Main(): " + e.Message);
public static void CheckIP()
try
!_CurrentIp.Equals(externalip))
_CurrentIp = externalip;
NotifyChanges(); //Notify me if IP is changed via some HttpClient post
Console.WriteLine("At: " + DateTime.Now + "
catch (Exception e)
Console.WriteLine("Error (): " + e.Message);
If I run the script using: dotnet /Users/alvinalvin/Scripts/ReportIP.sh it runs fine. This is the ReportIP.sh:
#!/bin/bash
/usr/local/share/dotnet/dotnet /Users/alvinalvin/Scripts/MyHome/MyHome.dll
Then I use launchd to launch the script when startup. This the /Library/LaunchDaemons/com.startup.plist
<?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.startup</string>
<key>ProgramArguments</key>
<array>
<string>/Users/alvinalvin/Scripts/ReportIP.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/startup.stdout</string>
<key>StandardErrorPath</key>
<string>/tmp/startup.stderr</string>
</dict>
</plist>
The result from the error is this:
(com.startup): Service only ran for 0 seconds. Pushing respawn out by
10 seconds.
I suppose these are the problem:
- Cannot run app with thread in it
- Console.ReadLine() is the problem
because it runs in the background - Console.WriteLine() causing the
problem because there is no console is running
But I am not sure what is happening here. I need help.
Is there a way to achieve this?
c# macos asp.net-core
add a comment |
I created a script which used a thread to keep running every minute. The script is to inform me if there is changes in the public IP. This is the NetCore app:
static void Main(string args)
try
var timer = new System.Threading.Timer(e => CheckIP(), null,
TimeSpan.Zero, TimeSpan.FromMinutes(1));
Console.ReadLine();
catch (Exception e)
Console.WriteLine("Error Main(): " + e.Message);
public static void CheckIP()
try
!_CurrentIp.Equals(externalip))
_CurrentIp = externalip;
NotifyChanges(); //Notify me if IP is changed via some HttpClient post
Console.WriteLine("At: " + DateTime.Now + "
catch (Exception e)
Console.WriteLine("Error (): " + e.Message);
If I run the script using: dotnet /Users/alvinalvin/Scripts/ReportIP.sh it runs fine. This is the ReportIP.sh:
#!/bin/bash
/usr/local/share/dotnet/dotnet /Users/alvinalvin/Scripts/MyHome/MyHome.dll
Then I use launchd to launch the script when startup. This the /Library/LaunchDaemons/com.startup.plist
<?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.startup</string>
<key>ProgramArguments</key>
<array>
<string>/Users/alvinalvin/Scripts/ReportIP.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/startup.stdout</string>
<key>StandardErrorPath</key>
<string>/tmp/startup.stderr</string>
</dict>
</plist>
The result from the error is this:
(com.startup): Service only ran for 0 seconds. Pushing respawn out by
10 seconds.
I suppose these are the problem:
- Cannot run app with thread in it
- Console.ReadLine() is the problem
because it runs in the background - Console.WriteLine() causing the
problem because there is no console is running
But I am not sure what is happening here. I need help.
Is there a way to achieve this?
c# macos asp.net-core
I created a script which used a thread to keep running every minute. The script is to inform me if there is changes in the public IP. This is the NetCore app:
static void Main(string args)
try
var timer = new System.Threading.Timer(e => CheckIP(), null,
TimeSpan.Zero, TimeSpan.FromMinutes(1));
Console.ReadLine();
catch (Exception e)
Console.WriteLine("Error Main(): " + e.Message);
public static void CheckIP()
try
!_CurrentIp.Equals(externalip))
_CurrentIp = externalip;
NotifyChanges(); //Notify me if IP is changed via some HttpClient post
Console.WriteLine("At: " + DateTime.Now + "
catch (Exception e)
Console.WriteLine("Error (): " + e.Message);
If I run the script using: dotnet /Users/alvinalvin/Scripts/ReportIP.sh it runs fine. This is the ReportIP.sh:
#!/bin/bash
/usr/local/share/dotnet/dotnet /Users/alvinalvin/Scripts/MyHome/MyHome.dll
Then I use launchd to launch the script when startup. This the /Library/LaunchDaemons/com.startup.plist
<?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.startup</string>
<key>ProgramArguments</key>
<array>
<string>/Users/alvinalvin/Scripts/ReportIP.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/startup.stdout</string>
<key>StandardErrorPath</key>
<string>/tmp/startup.stderr</string>
</dict>
</plist>
The result from the error is this:
(com.startup): Service only ran for 0 seconds. Pushing respawn out by
10 seconds.
I suppose these are the problem:
- Cannot run app with thread in it
- Console.ReadLine() is the problem
because it runs in the background - Console.WriteLine() causing the
problem because there is no console is running
But I am not sure what is happening here. I need help.
Is there a way to achieve this?
c# macos asp.net-core
c# macos asp.net-core
asked Nov 14 '18 at 8:10
Alvin StefanusAlvin Stefanus
325218
325218
add a comment |
add a comment |
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
);
);
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%2fstackoverflow.com%2fquestions%2f53295581%2frunning-net-core-program-on-macos-launchd-startup-script%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
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.
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%2fstackoverflow.com%2fquestions%2f53295581%2frunning-net-core-program-on-macos-launchd-startup-script%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