---
description: >-
  As sometimes , geth process will be killed by VPS system ,so we need to set
  daemon for geth processed.It's easy and suitable to set daemon in Linux OS,
  you may use [supervisor](http://supervisord.org)
---

# Set Daemon For Geth

* &#x20; We assume the source code go-etherzero   is in directory /root amd  geth is running by root user.
* Write daemon.sh&#x20;
* CAUTION: you must replace the words 'your address' to your own rewards address.

```
cat << EOF > /root/daemon.sh
#!/bin/bash
source /etc/profile
source ~/.bashrc
jspid="ps aux | grep maxpeers | grep -v grep | awk '{print $2}'"
echo $jspid
if [ -z "\$jspid" ] ; then
echo $jspid
nohup ~/go-etherzero/build/bin/geth  --maxpeers 50  --syncmode fast --masternode --etherbase "your address"  > output.log 2>&1 &
else
echo  "run normaly"
fi
EOF
```

* Generating the miner.sh&#x20;

```
echo -e " ~/go-etherzero/build/bin/geth attach --exec 'miner.start()' " > /root/miner.sh && chmod +x  /root/miner.sh
```

* set daemon.sh  and miner.sh for execute  miner start each  minute&#x20;

```
( crontab -l | { cat; echo "*/1 * * * * /bin/bash /root/daemon.sh & "; } ) | crontab -  &&  ( crontab -l | { cat; echo "*/1 * * * * /bin/bash /root/miner.sh & "; } ) | crontab -
```

* As the crontab is running by every minute ,so we need to set another shell script for each seconds to monitor the process,
* Generating the second.sh.

```
#!/bin/bash
step=1  #time step for damon.sh 
for ((i=0;i<60;i=(i+step)));do	
    /usr/bin/bash /root/damon.sh &
    sleep $step
done
exit 0
```

* Add second.sh instead of daemon.sh,  to monitor geth  process  every one second

```
( crontab -l | { cat; echo "*/1 * * * * /bin/bash /root/second.sh & "; } ) | crontab - && chmod +x /root/second.sh 
```

