瀏覽代碼

option to add daemon

Bob Mottram 7 年之前
父節點
當前提交
2ba896eaa8
共有 1 個檔案被更改,包括 39 行新增5 行删除
  1. 39
    5
      src/freedombone-template

+ 39
- 5
src/freedombone-template 查看文件

@@ -40,6 +40,7 @@ app_php=
40 40
 app_node=
41 41
 app_onion_only=
42 42
 app_port=''
43
+app_daemon=
43 44
 your_name=''
44 45
 your_email=''
45 46
 SHOW_ON_ABOUT=1
@@ -62,6 +63,7 @@ function show_help {
62 63
     echo $'     --node [yes|no]                   Is this a nodejs app?'
63 64
     echo $'  -o --onion [yes|no]                  Is this app only available on an onion address?'
64 65
     echo $'  -p --php [yes|no]                    Is this a PHP app?'
66
+    echo $'  -s --daemon [yes|no]                 Add a daemon'
65 67
     echo $'  -d --database [mariadb|postgresql]   Type of database'
66 68
     echo ''
67 69
     exit 0
@@ -110,6 +112,12 @@ do
110 112
             shift
111 113
             app_node="$1"
112 114
             ;;
115
+        -s|--daemon|--systemd)
116
+            shift
117
+            if [[ "$1" == 'yes' ]]; then
118
+                app_daemon=1
119
+            fi
120
+            ;;
113 121
         -o|--onion)
114 122
             shift
115 123
             if [[ "$1" == 'yes' ]]; then
@@ -484,11 +492,14 @@ fi
484 492
 echo "    nginx_dissite \$${app_name_upper}_DOMAIN_NAME"
485 493
 echo "    remove_certs \$${app_name_upper}_DOMAIN_NAME"
486 494
 echo ''
487
-echo "    if [ -f /etc/systemd/system/${app_name}.service ]; then"
488
-echo "        systemctl stop ${app_name}"
489
-echo "        systemctl disable ${app_name}"
490
-echo "        rm /etc/systemd/system/${app_name}.service"
491
-echo '    fi'
495
+if [ $app_daemon ]; then
496
+    echo "    if [ -f /etc/systemd/system/${app_name}.service ]; then"
497
+    echo "        systemctl stop ${app_name}"
498
+    echo "        systemctl disable ${app_name}"
499
+    echo "        rm /etc/systemd/system/${app_name}.service"
500
+    echo '    fi'
501
+    echo "    userdel -r ${app_name}"
502
+fi
492 503
 echo ''
493 504
 echo "    if [ -d /var/www/\$${app_name_upper}_DOMAIN_NAME ]; then"
494 505
 echo "        rm -rf /var/www/\$${app_name_upper}_DOMAIN_NAME"
@@ -660,6 +671,29 @@ if [[ "$app_php" == 'yes' ]]; then
660 671
     echo ''
661 672
     echo '    configure_php'
662 673
 fi
674
+if [ $app_daemon ]; then
675
+    echo ''
676
+    echo "    useradd -d TODO_PATH_TO_INSTALL -s /bin/false ${app_name}"
677
+    echo ''
678
+    echo "    echo '[Unit]' > /etc/systemd/system/${app_name}.service"
679
+    echo "    echo 'Description=${app_name}' >> /etc/systemd/system/${app_name}.service"
680
+    echo "    echo 'After=syslog.target' >> /etc/systemd/system/${app_name}.service"
681
+    echo "    echo 'After=network.target' >> /etc/systemd/system/${app_name}.service"
682
+    echo "    echo '' >> /etc/systemd/system/${app_name}.service"
683
+    echo "    echo '[Service]' >> /etc/systemd/system/${app_name}.service"
684
+    echo "    echo 'Type=simple' >> /etc/systemd/system/${app_name}.service"
685
+    echo "    echo 'User=${app_name}' >> /etc/systemd/system/${app_name}.service"
686
+    echo "    echo 'Group=${app_name}' >> /etc/systemd/system/${app_name}.service"
687
+    echo "    echo 'WorkingDirectory=TODO' >> /etc/systemd/system/${app_name}.service"
688
+    echo "    echo 'ExecStart=TODO' >> /etc/systemd/system/${app_name}.service"
689
+    echo "    echo 'Restart=always' >> /etc/systemd/system/${app_name}.service"
690
+    echo "    echo 'Environment=\"USER=${app_name}\"' >> /etc/systemd/system/${app_name}.service"
691
+    echo "    echo '' >> /etc/systemd/system/${app_name}.service"
692
+    echo "    echo '[Install]' >> /etc/systemd/system/${app_name}.service"
693
+    echo "    echo 'WantedBy=multi-user.target' >> /etc/systemd/system/${app_name}.service"
694
+    echo "    systemctl enable ${app_name}"
695
+    echo "    systemctl start ${app_name}"
696
+fi
663 697
 echo ''
664 698
 echo "    create_site_certificate \$${app_name_upper}_DOMAIN_NAME 'yes'"
665 699
 echo ''