commandlinefu.com is the place to record those command-line gems that you return to again and again.
Delete that bloated snippets file you've been using and share your personal repository with the world. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.
If you have a new feature suggestion or find a bug, please get in touch via http://commandlinefu.uservoice.com/
You can sign-in using OpenID credentials, or register a traditional username and password.
First-time OpenID users will be automatically assigned a username which can be changed after signing in.
Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.
» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10
Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):
Subscribe to the feed for:
Did some research and found the previous command wrong, we don't kill a zombie but its parent. Just made some modifcation to khashmeshab's command.
Execute commands serially on a list of hosts. Each ssh connection is made in the background so that if, after five seconds, it hasn't closed, it will be killed and the script will go on to the next system.
Maybe there's an easier way to set a timeout in the ssh options...
Daemontools[1] won't always properly reap it's children. Sometimes when you need to kill the main svscan process, you want to also clean up all of it's children. The way to do that is to send a signal to the entire process group. It is a bit tricky
List background jobs, grep their number - not process id - and then kill them
A timeout is great, but what if the command is taking longer than expected because it's hung up or ran into some other problem? That's where the -k option comes in. Run "some_command" and timeout after 30s. If the command is still running after 1 minute, it will receive a kill signal.
Kills all the threads from the user provided in the WHERE request.
Can be refined through the SQL request, of course, see http://dev.mysql.com/doc/refman/5.1/en/processlist-table.html for the available columns.
Alternative if "Lazy unmount" (umount -l) doesn't obey.
Alternative for NFS:
umount -f /media/sdb1
Use with caution: forcing to unmount a busy partition can cause data loss!
The other 2 commands that are listed will also kill the egrep process and any libexec processes because the .exe isn't escaped so it is really using . meaning anything containing exe. The command i posted escapes the (dot) in .exe and then filters the actual egrep process so that it doesn't get killed before the other processes being killed. Also added the -9 switch for kill to send sigterm to the processes, in case people are wondering why processes aren't getting killed after running just kill . This should work better for people :)
useful signals are:
pkill -SIGSTOP mpg321 #pause
pkill -SIGCONT mpg321 #resume
pkill -SIGHUP mpg321 #stop
pkill -SIGKILL mpg321 #force exit
TIP: use aliases or shortcuts to control mpg321 from the Desktop Manager
This command kills all wine instances and each EXE application working on a PC.
Here is command info:
1) ps ax > processes = save process list to file named "processes" (we save it because we don't wont egrep to be found in the future)
2) cat processes | egrep "*.exe |*exe]" = shows the file "processes" and after greps for each *.exe and *exe] in it
3) | awk '{ print $1 }' > pstokill = saves processes PID's to file "pstokill" using awk filter
4) kill $(cat pstokill) = kills each PID in file pstokill, which is shown by cat program
5) rm processes && rm pstokill = removes temporary files
just a leaner, smaller version. Love the original idea!
It identifies the parents of the Zombie processes and kill them. So the new parent of orphan Zombies will be the Init process and he is already waiting for reaping them. Be careful! It may also kill your useful processes just because they are not taking care and waiting for their children (bad parents!).
Tested on FreeBSD 8.1 and CSH. The scripts works correctly but the Zombies do not die! I hope it will run and function as expected in Linux and others.
Somtime one wants to kill process not by name of executable, but by a parameter name. In such cases killall is not suitable method.
Removed unneeded grep -v by making the initial grep unable to match itself.
I found this in Ubuntu repos, and consider it better than timeout.
for when a program is hogging the sound output. finds, and kills. add -9 to the end for wedged processes. add in 'grep ^program' after lsof to filter.
Using -f treats the process name as a pattern so you don't have to include the full path in the command. Thus 'pkill -f firefox' works, even with iceweasel.
if you dont want to alias also then you can do
killall rapidly_spawning_process ; !! ; !! ; !!