2

I'm a network admin at a school, and I'm wondering if anyone here can shed some light on an odd problem.

Preface: We have a number of laptop carts of MacBook Pros and MacBooks as well as over 100 faculty MacBook Pros. We have spent a lot of time teaching students and faculty members that when they wish to turn off a laptop, they must click the Apple, then Shut Down and then WAIT UNTIL THE SCREEN TURNS BLACK. As indicated by the all caps, this has been a major problem in the past because students and faculty alike will click Shut Down, then immediately close the lid, thus suspending the machine in a state between log out and shut down. After many years of data corruption, constant reminders and re-education, the problem is finally at an all-time low. However, all of that is now in jeopardy due to a change in Yosemite.

The Problem: We are switching to OS 10.10 next year, and Apple has changed the shutdown screen from pure white to pure black, meaning the average user has practically no way to know when the machine is actually turned off. There is a small spinning progress circle in the bottom middle of the screen, but it is dull and almost imperceptible unless the brightness is way up and the environment is dark. This means that users will click Shut Down and then immediately close the lid once they see the black screen.

The Desired Result: In a perfect world, I would be able to set a custom shutdown screen that has text on it and is, you know, not not identical to a powered off screen. Alternatively, I could at least put large text on top of the black screen. I have not found any way to modify the shutdown screen for 10.10 or any other OS. Does anyone know any way to accomplish this?

Another Desired Result: It would be nice if I could replace the default spinning progress circle with something else that is bigger, brighter and actually visible. The only issue I see here is that the graphic is so small that regardless of what I created to go in its place, it would be ignored. If the graphic could be made larger, that would be a serious possibility. However, as with the above choice, I have not seen any evidence that it is possible. Does anyone know anything about this?

The Work-Arounds I've Pondered and/or Tried:
1) Changing the shutdown timer to 1 or 2 seconds.
-- I would like to avoid this if possible because of the issues that could occur if processes are constantly killed before gracefully ending. I realize this is not a constant issue, but it would happen.

2) Turning on the keyboard backlight.
-- This would technically work, because the keyboard backlight stays on until the machine is fully shut down. However, it is not practical. It drains the battery, not everyone wants it on, and there is no way to force it to stay on.

3) Informing users to pay attention to physical things, such as HD vibration, fan airflow, noise etc.
-- This is completely impractical, totally unreliable and would never work for the faculty, much less the students.

4) Somehow configure the system beep to make noises until the power is turned off.
-- I don't think it is possible to control the system beep that way, and besides, if there are more than two students in the same room there would be beeps all over the place and no way to know whose machine they came from. Also it would annoy everyone.

5) Run a logout hook script that displays something on the screen that goes away only when the power turns off.
-- I'm not entirely sure this is technically possible, because as the OS is shutting down, the processes that would need to be kept alive to run the message would either prevent shutdown altogether, or simply get killed as part of the shutdown process.

6) Use a program like NoSleep or InsominaX to disable the lid closing behavior.
-- When used in conjunction with completely disabling the ability to sleep and hibernate the computer, technically this functionality would work nicely for the laptop carts. However, it is not an ideal solution. The main issue is getting the programs to run reliably every time, which has not been my experience using them over the years. Secondly though, the program's menu bar icon would be visible and accessible to students; and they cannot be allowed to manipulate such settings.
-- Furthermore, teachers need to be able to put their computer to sleep, and these programs make that an unreliable process. In my testing, if you put a computer to sleep by clicking Apple --> Sleep, closing the lid actually wakes the machine up. I've put a ticket in with each developer, but a response is unlikely I think.

7) Add a command to a logout hook which turns the screen brightness up to 100%, create a LaunchAgent then returns it to 50% (or some other number) at boot up.
-- In theory, with some luck and a lot of re-education it could work for the faculty laptops, but it is highly unlikely the students would have the presence of mind to pay attention to the degrees of blackness necessary to make a power on vs. power off judgement.

As you can see, I have put a lot of thought into this and done a lot of research, but so far I am still without a solid solution. I have found almost no references online to anyone making custom shutdown messages, or altering shutdown behaviors in the way that I am describing. What I have seen mostly involves changing the shutdown timer, commands for a dirty or forced shutdown, creating AppleScript to display messages to be clicked before shutdown begins, and so on.

So, does anyone have any ideas how I might proceed here?

  • What's the real problem? Yes, users sleep the macs instead of shut them off. What happens hours or days later? What's the end goal? Why not have users restart the macs and then sleep them once the reboot finished? – bmike May 27 '15 at 15:08
  • The problem is that computers need to be shut down properly in order for them to work properly. It is important the laptop cart machines be completely shut down after each usage. We have various scripts that run at startup to refresh things and create a more uniform user experience. Data corruption aside, improper shutdown prevents these things from working properly. There are many other little issues as well, but having users completely shut down computers will continue to be the desired result. – SadMarvin May 27 '15 at 15:42
  • Fair enough. I addressed briefly the eventual goal of not needing a shutdown in my answer. My premise is something is fundamentally wrong if you don't have a stable software stack and require power cycles more than when specifically detected or infrequently. It's not realistic to change overnight, but part of this pain is self-inflicted by not building a stack that is resilient in the face of routine operation. – bmike May 27 '15 at 15:58
  • There is nothing unstable about our software, hardware or environment. This is a singular issue that needs to be addressed on its own. – SadMarvin May 27 '15 at 15:59
1

To solve data corruption, have users log out. Also, empower users to know if their backups are current and make it their responsibility to self-service restore activities.

To minimize restart times, have users restart the macs and sleep them when the login screen arrives (assuming you don't have auto-log in enabled). This makes much more sense to me since new classes should have everything prepped and the last class should clean up their mess.

All your workarounds seem like IT taking the cleanup burden from the users and also shouldering the data protection lead. When IT is seen as a second fail safe to be relied upon when the routine maintenance and operating throw an exception, your life will be much better. In turn, the staff and student's lives will be much better since you can then support the real problems and not be self-selecting and volunteering for all the janitorial work.

Also, having reboots be a monthly task is working well in most environments I'm aware of. If your software selection and testing is yielding leaky and crash-tastic performance, documenting that would be an excellent investment in the future so that the curriculum reflects the costs of maintenance since you are well aware of how real they can be when you don't have stable OS that can wipe things clean once a user logs out.

When IT can be responsible for system stability and users responsible for user maintenance (log out and log in) and you can track reboots as a signal that users are not trained or that a quality defect has slipped past the testing group, life gets far more fun for IT.

Lastly, look at your MDM provider - with 150 macs under management, you'll reap significant benefits if you learn how to use that tool proactively. If you don't have one, start a bushel trial immediately and reach out to one or more vendors to learn how you can leverage tools to assist. Even if you end up rolling out scripts to tweak hooks, you'll want a solid framework for monitoring and change management rather than laying hands on every cart and interrupting staff constantly for inevitable changes and updates.

  • bmike- I appreciate your response. We are generally happy with the procedures and maintenance we perform, and the results they achieve. Overall we have a smooth environment with very few serious problems. For this particular issue, preventative measures need to be taken at the image level. I have put considerable work and thought into streamlining things for our users, and that is what I am would like to continue by resolving this issue before it occurs. – SadMarvin May 27 '15 at 15:58
  • @SadMarvin Best wishes for success in adapting to 10.10 changes :-) I'm sure much of the hard work is glossed over in your question. – bmike May 27 '15 at 15:59
0

this is kind of unrelated out-of-the-box thinking, but I'm wondering if it might indirectly solve the problem.

if you enable verbose boot mode, it will show system startup and shutdown information. well it will mostly be useless information for most people. but it may just be enough of a visual clue ( hey look there's text on the screen ) for users to understand that the system is still running.

you can temporarily enable this by holding Command+V during power on, you can then do a system shutdown watching the pretty words fly by.

well there are multiple ways to permanently enable it, i used OnyX. and since this is done in firmware, you see text until the system is fully off.

  • I also forgot to mention that there is a slight side effect of non-visible kernel panics, although it's pretty obvious something went horribly wrong. – Mark W May 28 '15 at 3:38
  • Mark W- Thanks for this suggestion! I enabled verbose mode and made a video of it so I could see everything. It didn't display much, but it did say that it was calling a specific launched process: volumename.local com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system) However I cannot find this thing anywhere! I found a few xpc plists in System/Library, but other than logs I cannot find any reference to where this file actually resides. Any ideas? – SadMarvin May 28 '15 at 13:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .