I liked and used a similar Login/logout script to what Pincopallino suggested on Yosemite & Maverick, but for some reason only the logout script works for me on El Capitan.
I tested the scripts without logging out and in first, they seem to work. Not sure why loginhook is not working. Permissions are set to octal mode:755, user:root, group:staff (I wonder if it should have been wheel now or something.)
I tried editing the ttys file thinking maybe the loginhook was not working in El Capitan, tested it, then reverted the ttys file when it didn't make a noticable change after restarting.
Using a .plist file in /Library/LaunchAgents is working for me though.
I would have commented on Pincopallino's answer but don't have enough points to do that.
Here's an example .plist for those interested that would hypothetically work with the teored90/nobootsound installation package that Pincopallino linked to. I tested it to make sure it does indeed work.
<?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">
Open the terminal and paste the below command. The command touch creates an empty file on your desktop. The open command tells TextEdit to open the new empty file. Go ahead and paste the above code into the empty plain text file and save it.
touch ~/Desktop/com.YourUserName.nobootsound_loginhook.plist && open ~/Desktop/com.YourUserName.nobootsound_loginhook.plist -a TextEdit
Copy and paste the next command into terminal, hopefully you will only need to enter your password once. This command changes the permissions of the .plist so that it can be executed, and moves it to where it needs to be
sudo chmod +x ~/Desktop/com.YourUserName.nobootsound_loginhook.plist && sudo chown root:wheel ~/Desktop/com.YourUserName.nobootsound_loginhook.plist && sudo mv ~/Desktop/com.YourUserName.nobootsound_loginhook.plist /Library/LaunchAgents
Logout and log back in, test, see if it works. I'm thinking about forking teored90/nobootsound, it'd be the perfect first experience for me to learn.
If it's not working and you want the .plist gone copy and paste below into terminal one last time:
sudo launchctl unload /Library/LaunchAgent/com.YourUserName.nobootsound_loginhook.plist & sudo rm /Library/LaunchAgent/com.YourUserName.nobootsound_loginhook.plist
Please remember to replace all instances of "YourUserName" with your actual username.