每次关机后,第二天用docker ps -a 查看进程,发现进程都是在关机的时候被停止了,这样的话,每次电脑重启,都需要手动启动,所以写了下面的脚本,让他跟随电脑启动时,一起启动。
start_1.sh
#!/bin/bash
#启动peer,couchdb,order,org等。
for container_id_block in $(docker ps --filter="name=^/peer" --filter="name=^/couchdb" --filter="name=^/order" --filter="name=^/ca" -q -a);
do docker start $container_id_block;
done
sleep 30
#通过ping网络之后,当前网络的进程就会被启动
composer network ping --card admin@XXXXXXXXX-network
sleep 30
#进入到画面的目录,启动画面的进程。
cd /home/linux1/Downloads/XXXXXXXX/XXXXXXXXX-app
node app.js &
exit 0
因为admin@XXXXXXXXXX-network的进程是在linux1的用户下创建的,而电脑的重启,是在root下启动的,所以调用上面的shell,需要切换用户,切换用户的方法如下
start.sh
#!/bin/bash
#su - linux1 -s /bin/bash /home/linux1/Documents/data/start_1.sh
su - linux1 '/home/linux1/Documents/data/start_1.sh'
exit 0
我用的系统是ubuntu 16.04,需要把上面的start.sh加入到/etc/rc.local里面,修改这个脚本是需要root权限。
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
./home/linux1/Documents/data/start.sh
exit 0
这样就可以开机自动启动设置的进程了。