| #!/usr/bin/env bash |
| |
| cat > /etc/systemd/system/critest.service << EOF |
| [Unit] |
| Description=critest script |
| [Service] |
| Type=simple |
| Environment="IS_SYSTEMD_CGROUP=true" |
| RemainAfterExit=yes |
| ExecStart=/bin/bash /docker-entrypoint.sh |
| StandardOutput=/dev/stdout |
| StandardError=/dev/stderr |
| [Install] |
| WantedBy=default.target |
| EOF |
| |
| |
| function echo_exit_code() { |
| sleep 30 |
| log_str=`systemctl status critest.service|grep "SUCCESS!"` |
| if [ -z "$log_str" ]; then |
| echo 1 > /tmp/critest_exit_code.txt |
| /bin/systemctl poweroff |
| fi |
| failed_count=$(echo "$log_str" | awk '{for(i=1;i<=NF;i++) if($i=="Failed") {print $(i-1); exit}}') |
| if [ "$failed_count" -gt 0 ]; then |
| echo 1 > /tmp/critest_exit_code.txt |
| else |
| echo 0 > /tmp/critest_exit_code.txt |
| fi |
| /bin/systemctl poweroff |
| } |
| |
| function start(){ |
| systemctl enable critest.service |
| journalctl -f & |
| exec /lib/systemd/systemd |
| } |
| |
| case $1 in |
| start) |
| start |
| ;; |
| exit) |
| echo_exit_code |
| ;; |
| esac |