servers.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #!/bin/sh
  2. # -*- coding: utf-8 -*-
  3. basedir="$(realpath "$0" | xargs dirname)"
  4. info()
  5. {
  6. echo "--- $*"
  7. }
  8. error()
  9. {
  10. echo "=== ERROR: $*" >&2
  11. }
  12. warning()
  13. {
  14. echo "=== WARNING: $*" >&2
  15. }
  16. die()
  17. {
  18. error "$*"
  19. exit 1
  20. }
  21. cleanup()
  22. {
  23. [ -n "$pid_backd" ] && kill "$pid_backd" 2>/dev/null
  24. [ -n "$pid_postd" ] && kill "$pid_postd" 2>/dev/null
  25. [ -n "$pid_fsd" ] && kill "$pid_fsd" 2>/dev/null
  26. wait
  27. }
  28. cleanup_and_exit()
  29. {
  30. cleanup
  31. exit 1
  32. }
  33. trap cleanup_and_exit INT TERM
  34. trap cleanup EXIT
  35. start_fsd()
  36. {
  37. echo "Starting cms-fsd..."
  38. rm -f "$rundir/cms-fsd.sock"
  39. local binary="$target/cms-fsd"
  40. [ -x "$binary" ] || die "cms-fsd binary $binary not found."
  41. "$binary" \
  42. --rundir "$rundir" \
  43. --no-systemd \
  44. "$dbdir" \
  45. &
  46. pid_fsd=$!
  47. }
  48. start_postd()
  49. {
  50. echo "Starting cms-postd..."
  51. rm -f "$rundir/cms-postd.sock"
  52. local binary="$target/cms-postd"
  53. [ -x "$binary" ] || die "cms-postd binary $binary not found."
  54. "$binary" \
  55. --rundir "$rundir" \
  56. --no-systemd \
  57. "$dbdir" \
  58. &
  59. pid_postd=$!
  60. }
  61. start_backd()
  62. {
  63. echo "Starting cms-backd..."
  64. rm -f "$rundir/cms-backd.sock"
  65. local binary="$target/cms-backd"
  66. [ -x "$binary" ] || die "cms-backd binary $binary not found."
  67. "$binary" \
  68. --rundir "$rundir" \
  69. --no-systemd \
  70. &
  71. pid_backd=$!
  72. }
  73. release="debug"
  74. while [ $# -ge 1 ]; do
  75. case "$1" in
  76. --debug|-d)
  77. release="debug"
  78. ;;
  79. --release|-r)
  80. release="release"
  81. ;;
  82. *)
  83. die "Invalid option: $1"
  84. ;;
  85. esac
  86. shift
  87. done
  88. target="$basedir/../target/$release"
  89. rundir="$basedir/run"
  90. dbdir="$basedir/../example/db"
  91. pid_fsd=
  92. pid_postd=
  93. pid_backd=
  94. mkdir -p "$rundir"
  95. start_fsd
  96. start_postd
  97. sleep 1
  98. start_backd
  99. wait
  100. # vim: ts=4 sw=4 expandtab