c# – Autostart a self-written application in mac os x

Question:

Good day!

Using the Xamarin Studio development environment (free version) I created a console application (File-> New-> Project-> C # -> Console project).
My application listens on the UDP port, and when it receives a packet, it pulls on the web service).

The application is compiled and run from the development environment. The application runs successfully from the command line:
mono /Users/myname/Projects/UDPListener/bin/Debug/UDPListener.exe

But I just can't figure out how to make the application start automatically when the MAC-mini is turned on and the user logs in.

Created udp.plist, put it in / 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>UDPListener</string>
  <key>Program</key>
  <string>/usr/bin/mono</string>
  <key>ProgramArguments</key>
  <array>
     <string>/Users/myname/Projects/UDPListener/bin/Debug/UDPListener.exe</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>LaunchOnlyOnce</key>
  <true/>
 </dict>
</plist>

Further:

#правим права доступа 
chown root:wheel /Library/LaunchDaemons/udp.plist 
#правим атрибуты 
chmod 755 /Library/LaunchDaemons/udp.plist

Rebooting …

The manual says:
You can activate or deactivate a running script by running the commands:

#launchctl load /Library/LaunchAgents/[имя.вашего.файла].plist   
#launchctl unload /Library/LaunchAgents/[имя.вашего.файла].plist

Tried these commands. Rebooted. My application won't start.

Help me please. How can I launch my application when the user is logged in?

Answer:

You can create an application that launches a shell script:

  • Run Automator.app
  • Select document type Application
  • Find the Run shell script action in the library on the left or through the search bar
  • Drag this action to the stage on the right
  • Paste your script mono /Users/myname/Projects/UDPListener/bin/Debug/UDPListener.exe
  • File -> Save

Now add this application to startup:

  • System Preferences -> Users & Groups
  • Select User -> Login Items
  • Add the file created in Automator .app to the list

When this user logs in, the program will start.

Scroll to Top