Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MacOS 13: MeshAgent service disappears after reboot #4822

Open
superbam opened this issue Nov 29, 2022 · 13 comments
Open

MacOS 13: MeshAgent service disappears after reboot #4822

superbam opened this issue Nov 29, 2022 · 13 comments
Assignees
Labels

Comments

@superbam
Copy link

MeshCentral 1.1.0, MacOS 13.0.1 on M1 Pro

After installing the MeshAgent the service will run and connect but disappear after a reboot. Service can be run manually to reconnect the computer but will not survive a reboot.

Both agents for MacOS exhibit this behavior

MeshAgent Service Pre Reboot
MeshAgent Service Post Reboot

@bbrendon
Copy link
Contributor

bbrendon commented Dec 8, 2022

This is happening for me as well on an Intel Mac running 13.0.1. All seems good if I run
systemctl load /Library/LaunchDaemons/meshagent.plist after boot.

@superbam
Copy link
Author

In my case systemctl doesn't exist but I was able to do the same thing with launchctl.

On an M1 system the command was: sudo launchctl load /Library/LaunchDaemons/meshagent_osx64_LaunchDaemon.plist
On an Intel system the command was: sudo launchctl load /Library/LaunchDaemons/meshagent.plist

Confirmed that it brings the service back to life. Unfortunately it doesn't help it survive a reboot.

Suggestions?

@ghost
Copy link

ghost commented Feb 10, 2023

+1 for me too on M1 system and Ventura 13.2

@mrhhats
Copy link

mrhhats commented Apr 4, 2023

+1 here.

@superbam
Copy link
Author

I may have found a solution to this. If you run:
sudo nano /Library/LaunchDaemons/meshagent.plist
And modify the file to match this:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
      <key>Label</key>
     <string>com.mesh.meshagent</string>
     <key>ProgramArguments</key>
     <array>
         <string>/usr/local/mesh_services/meshagent/meshagent</string>
     </array>
      <key>RunAtLoad</key>
<true/>
      <key>KeepAlive</key>
      <dict>
         <key>Crashed</key>
         <true/>
      </dict>
  </dict>
</plist>

Exit and save the file and then restart the computer and the Mesh Agent should load.

@Bewo
Copy link

Bewo commented Jun 25, 2023

@superbam Perfect - worked for me! Thanks!

@crivera8602
Copy link

@superbam this also fixed my issue. my meshagent was named different meshagent_osx64... as long as i made the changes it boots perfectly. Thx

@AymanAnsari
Copy link

This works. But I am getting blank screen on the Login page. I needed to login to make the screen available. Do anyone know why?

@Bewo
Copy link

Bewo commented Oct 22, 2023

This works. But I am getting blank screen on the Login page. I needed to login to make the screen available. Do anyone know why?

Hi @AymanAnsari

i guess the mac screen is black in reality too? So the mac is "sleeping". You have to wake up before login in desktop.
Just login in Terminal first. To wake up the mac type for example
caffeinate -u -t 2
Then log out from terminal and log in to the Desktop. ;-)

@AymanAnsari
Copy link

No. it is not black in reality. As from other remote agent I can see the screen and connect. But only on Mesh it is showing this issue.

@veixus
Copy link

veixus commented Dec 8, 2023

This works. But I am getting blank screen on the Login page. I needed to login to make the screen available. Do anyone know why?

I have this same symptom and i have spent time looking at the plist files running processes etc I have discovered that a funny symptom is that you have to manually log into the MacOS as a user - after that you can connect with meshagent, do everything normally (after adding the right permssions for Screen Recording and Accessibility)

Im not sure how everything works but one thing I noticed is that It has to have 2 processes running - the standard one that is under "LaunchDaemons" and the kvm one that is under "LaunchAgents". I also had to do the mentioned naming fix. It seems that both having the same label makes agent not start.

I got some good inspiration from another similar remote desktop related project - it describes how it is setup. Its experimental and doesnt work for me at all, but I got some some ideas from there
https://github.com/team-unstablers/ulalaca

Basically before login there should be something running as "meshagent -kvm1" but after successful login locally or with mac vnc remote management it is terminated and becomes meshagent -kvm0 running as user1 for example

If the user logs out, it becomes meshagent -kvm1 again. I think there might be some permission issues or naming issues.

user1           3635  66.4  0.5 409197664  86080   ??  R    10:26AM   0:28.96 meshagent -kvm0
root               300   0.0  0.1 409351600  22640   ??  Ss   10:19AM   0:01.95 /usr/local/mesh_services/meshagent/meshagent --no-embedded="1" --installedByUser=NaN

root              4263   0.0  0.5 409038272  78656   ??  Ss   10:28AM   0:01.82 /usr/local/mesh_services/meshagent/meshagent -kvm1
root               300   0.0  0.1 409351600  23568   ??  Ss   10:19AM   0:02.07 /usr/local/mesh_services/meshagent/meshagent --no-embedded="1" --installedByUser=NaN

@si458
Copy link
Collaborator

si458 commented Feb 25, 2024

just an update for people. ive found the issue,
macos requires unique names inside the plist files across LaunchDaemons AND LaunchAgents
so a simple fix is to change the Label 'meshagent' (or your app name) inside 'LaunchAgents/meshagent.plist' to 'meshagent-launchagent' (or `yourappname-launchagent')
and restart ur mac
'LaunchDaemons' loads the application at startup,
where as 'LaunchAgents' loads the kvm side of things for meshagent when a user logs in

from launchd.info
Theoretically it is possible for an agent to have the same label as a daemon, as daemons are loaded by the root launchd whereas agents are loaded by a user launchd, but it is not recommended.

EDIT: the issue/fix was actually here just didnt spot it! Ylianst/MeshAgent#161

@si458
Copy link
Collaborator

si458 commented Mar 24, 2024

Plz can people try the pkg in 1.1.22 which has bug fixes now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

9 participants