如何永久运行离子服务?

时间:2015-12-28 07:25:06

标签: angularjs linux cordova ionic-framework

我在一个应用程序中使用Ionic框架。代码在linux服务器上。我正在使用ionic serve命令通过putty运行应用程序。

但是,问题是如果我关闭了putty应用程序停止了。有没有办法永久性地运行离子服务作为守护进程?

2 个答案:

答案 0 :(得分:4)

我怀疑你是否正在尝试这样做,因为你想将你的Ionic应用程序作为网络应用程序提供,对吗?

在这种情况下 - 您不必永久地运行ionic serve。您所要做的就是从www文件夹中获取所有代码,并将其放在您的Web服务器的http文件夹(或任何其他对您的系统有效的文件夹)中。

所以,基本上,启动apache(或nginx)并提供Ionic的www文件夹中的代码。基本上,ionic serve命令执行相同的操作 - 它会旋转本地Web服务器并提供www文件夹中的内容。它可以加快本地测试。

您可以查看this SO question了解有关如何将Ionic部署为网站的更多信息。

答案 1 :(得分:0)

我想使用 Ionic 和 Capacitor 在我的服务器上进行测试,但 www 文件夹没有运行第三方应用程序。

虽然未经测试,但从技术上讲,该设置应该能够与其他框架(例如 Vue、React 等)一起用于 Ionic。

使用 nginxsupervisor 我让它工作了。

Nginx 配置

sudo apt-get install nginx

sudo apt-get install nano

创建一个 conf 文件

sudo nano /etc/nginx/sites-available/ionic

在文件中添加以下内容。

server {
    listen 8100;
    server_name your-domain.com your-ip-address;

    charset utf-8;

    client_max_body_size 10M;

    #Django media and static files
    location / {
        proxy_pass http://127.0.0.1:8101;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

请注意,我正在侦听端口 8100,但您可以使用任何其他端口,例如80. 此外,proxy_pass 设置为 8101,因为 ionic 将在此端口上运行。请参阅下面的主管配置

主管配置

sudo apt-get install supervisor

然后创建一个 conf 文件

sudo nano /etc/supervisor/conf.d/ionic.conf

在里面添加以下内容

[program:ionic]
command=ionic serve --port=8101
directory=/path/to/your/ionic/folder
autostart=true
autorestart=true
startretries=3
stderr_logfile=/var/log/supervisor/ionic/error.log
stdout_logfile=/var/log/supervisor/ionic/out.log

如前面 Nginx 配置中所述,我在端口 8101 上提供 ionic 服务。

注意:没有报错,在日志中创建ionic文件夹

sudo mkdir /var/log/supervisor/ionic

然后启用并重新启动服务

sudo ln -s /etc/nginx/sites-available/ionic /etc/nginx/sites-enabled
sudo systemctl restart nginx
sudo systemctl restart supervisor
sudo supervisord

在打开您的网站之前,检查 ionic 是否在日志输出文件中的正确端口上运行

tail -80 /var/log/supervisor/ionic/out.log

sudo systemctl enable supervisor
sudo systemctl enable nginx

http://your-domain.com:8100http://your-ip-address:8100