One Line Linux Command to Kill Parent Process and Spawned Children in A Group

Computer Screen Photo by Markus Spiske on UnsplashIn Linux, if you’d like to kill a command and all processes spawned by that command do this (in our example the command “parent” is example.py):

This will kill the “example.py” process and anything that it spawned.

How it works:

To kill all processes of a group the command is

To get the group id you do the ps command using the arguments as shown, grep it for your command, but formatting example.py with quotes and using the bracket for the first letter (this filters out the grep command itself) then filter it through awk to get the second field which is the group id. The tail -1 gets rid of duplicate group ids. Yout put all of that in a variable using the $() syntax and voila – you get the group id. So you substitute that $(mess) for that -groupid in the kill command above.

Getting Home Assistant, Mosquitto MQTT, and CloudMQTT To Work Together Using an MQTT Bridge

Photo by Louis Reed on Unsplash

Photo by Louis Reed on Unsplash

I’ve been experimenting with Home Assistant (a home automation server) running the Raspberry Pi and have found the videos from Ben at BRUHautomation to be a big help. One thing I was having trouble with was getting MQTT to control both my sonoff outlets and track my devices. Home Assistant can apparently only use one MQTT Broker at a time. Ben uses Mosquitto when setting up the Sonoff outlets, but CloudMQTT when using Owntracks to track devices.

To get them both working at the same time with Home Assistant you have to join the two using a bridge. This thread helped but the steps I needed weren’t very clearly posted and summarized. Here is what I did that seems to work.

  1. Follow Ben’s video to setup Mosquitto MQTT and CloudMQTT (in that order).
  2. You’ll end up with your configuration.yaml file using CloudMQTT as its broker (we will later change this below).
  3. On the command line on your server, kill mosquitto, and then edit the /etc/mosquitto/mosquitto.conf file so it looks like this:
  4. Here’s a screen shot of CloudMQTT where you get the user and passwords for above:
  5. After editing start mosquitto. Note that I’ve commented out the log as that will force any debugging to output to the screen.
  6. Hopefully you’ll see something like this (rather than errors such as connection refuse, unauthorized, etc:

  7. Now, edit Home Assistant’s configuration.yaml and delete or comment out the the CloudMQTT broker under the mqtt section. Add Mosquitto as the mqtt broker:
  8. Restart Home Assistant:
  9. If you don’t restart, some of your devices may work but not all. Also, if you are still having issues of inconsistent response (e.g., I had one light respond well, but the other one wouldn’t go off), go to the command line make sure you are not running more than one instance of Home Assistant (pps aux | grep hass) – and if you are kill all of them and start only one instance.

  10. That’s it. Navigate to your Home Assistant control panel and test your local devices and your Owntracks tracking. It should all work.

Google Cloudprint – Cloud Printer Offline

If you have a printer that is google cloudprint compatible but is showing ‘offline’ in your google cloud printers it may be your printer’s DNS settings. I have a Canon Workdforce 3640


I followed Canon’s instructions and registered it with Cloudprint and it worked for several months. Then one day it showed “offline” in the google cloud printer list even though the printer was clearly connected.

To fix it, I had to change the DNS Settings on the printer to those of google’s (for the house I use opendns so that could be blocking or it could be some other issue but changing to google’s fixed the issues).

 

  1. Look in your router settings and determine the ip address of your printer.
  2. Point your browser to the ip address, for example: http://192.168.1.XXX
  3. [Read more…]