Linux 将命令添加到Web服务

Linux 将命令添加到Web服务,linux,web-services,command-line,grass,Linux,Web Services,Command Line,Grass,这个问题更多地关注Web服务,而不是Grass软件。 关于如何允许将命令(Linux)作为Web服务访问,您有什么建议吗 实际上,我正在使用NodeJS,但欢迎使用其他解决方案 谢谢, 问候, 某人 这是一篇老文章,但我希望我的建议对其他人可能有用 最常见的方法可能是使用or,这两个项目都提供对GRASS GIS的绑定 另一种选择是直接从服务器端应用程序调用GRASS GIS。这可以通过手动设置GRASS GIS环境来完成(因为GRASS模块需要运行GRASS会话)。这在、中以及最后在SE()中

这个问题更多地关注Web服务,而不是Grass软件。 关于如何允许将命令(Linux)作为Web服务访问,您有什么建议吗

实际上,我正在使用NodeJS,但欢迎使用其他解决方案

谢谢,

问候,


某人

这是一篇老文章,但我希望我的建议对其他人可能有用

最常见的方法可能是使用or,这两个项目都提供对GRASS GIS的绑定

另一种选择是直接从服务器端应用程序调用GRASS GIS。这可以通过手动设置GRASS GIS环境来完成(因为GRASS模块需要运行GRASS会话)。这在、中以及最后在SE()中进行了描述

最后,在GRASS GIS的开发版本中有一个调用GRASS模块或任何设计用于在GRASS环境/会话中运行的脚本的方法。下面是一个Python示例:

import subprocess
grassbin = 'grass71'  # we expect grass71 to be on path
mapset = '/home/john/grassdata/nc_spm_08_grass7_tests/PERMANENT/'
subprocess.check_call([grassbin, mapset, '--exec', 'g.version', '-g'])"
我不确定这在NodeJS中到底是什么样子,但您可能想看看。这个界面是最近才添加的,现在还没有稳定的版本,但是它还是很有用的。在旧版本中,通过设置
GRASS\u BATCH\u JOB
环境变量,可以获得类似但有限的功能。您可以通过或运行
grass71--help
了解更多信息。一般语法为:

grass_executable full/path/to/mapset --exec module module=parameters -andflags
grass_executable full/path/to/mapset --exec custom_script.py
grass_executable -standard -flags full/path/to/mapset --exec ...
注意,一般来说,专门为GRASS编写的GRASS模块和脚本要求GRASS会话处于活动状态。标准方法是运行启动/设置会话的GRASS程序。会话通常是交互式的(命令行和/或GUI)。当使用其他程序的GRASS功能时,必须以某种方式设置会话/环境。PyWPS和Zoo项目将帮助您实现这一点,或者您可以完全自行完成(第二个建议选项),或者理想情况下,您可以使用实际的GRASS可执行文件,该文件将使用新的
--exec
标志或
GRASS\u BATCH\u JOB
变量在适当的会话中运行指定的模块或脚本(这是最后一个建议选项)