Frequently Asked Questions on macOS shell scripting
Why is the script not running on a macOS device?
Before assigning the shell scripts to macOS devices, make sure that the following criteria are met.
- Verify that the Hexnode MDM server is able to reach the device. Additionally, the Hexnode MDM agent installed on the device should be running its latest app version.
- Re-instate device activity. When the device is not network-connected or inactive, the Hexnode MDM agent app will be unable to receive the scripts pushed from the portal.
- Necessarily, a shell script begins with ‘#!’. Also, the script should be in a valid location like #!/bin/sh or #!/usr/bin/env zsh.
- Make sure that the command-line interpreters are installed on the devices.
How frequently is the script execution status reported with the portal?
The script run status is updated with the portal while the script is processed on the device. Whether the script succeeds, fails, is pending or is in progress, you can verify it from the Action History (Devices > Choose the Device > Action History) page of a device. It displays either of the statuses, Success, Pending, In Progress or Failed. If the script is supposed to display an output, it can be viewed by clicking the Show Output button. Even when the script fails, you can also verify the reason why it failed.
Does the script retry itself after failed execution?
Once executed, the Execute Custom Script action completes on the device showing the Failed or Success status. To run the scripts on a device again, the administrator should proceed with the action one more time.
Are other running processes suspended while executing shell scripts?
No, the shell script is executed as a different process. It operates in parallel with other running processes.
Is script execution performed only on the user accounts currently logged in?
No. During execution, the scripts are run across all the signed-in user accounts of the device.
Should I provide the password while executing commanding requiring root privileges?
No. Scripts are automatically executed with root privileges when they are initiated from the Hexnode portal. Hence, the Administrator password is not necessary for script execution.
How can I verify if the script is executed successfully?
From the Hexnode portal, go to the Manage tab and choose the device. Next, you can verify the execution status on the device’s Action History page. If the script was executed successfully, it shows a Success status. Otherwise, it displays Failed status.
Is it possible to validate a failed script from the Hexnode console?
In some cases, for instance, if your script returns output and fails to run, you can verify the reason for failure by accessing the info button displayed next to the Failed status. The Action history page of the device updates the script execution status.
Can the scripts once executed from the portal be run on other enrolled devices later?
Hexnode maintains a repository of scripts once executed from the portal. If you want to execute the same scripts on other devices later, you can choose the Hexnode repository as the script file source while performing the Execute Custom Script action. You may also download these scripts directly to the admin device from the Content tab.