Es posible mediante programación detener e iniciar los servicios de mapas de ArcGIS Server utilizando Python?
Respuestas
¿Demasiados anuncios?Para aquellos que estén interesados, mediante AGSSOM como se recomienda por el D. E. Wright, he creado el siguiente código. Esto se detenga todos los servicios que permiten realizar geodatabase de tareas y, a continuación, reinicie previamente los servicios en ejecución.
import os, subprocess
#Get list of currently running map services
stream = os.popen('D:\GIS\Admin\AGSSOMv10.0\AGSSOM.exe -list')
mapservices = stream.readlines()
lstStarted = []
for item in mapservices:
itemSplit = item.split(',')
if len(itemSplit) > 1:
if itemSplit[1].find("Started.") > -1:
lstStarted.append(itemSplit[0])
#Shutdown all map services
subprocess.call(['D:\GIS\Admin\AGSSOMv10.0\AGSSOM.exe', '-x', '*all*'])
##...Perfom geodatabase tasks here
#Restart previously running map services
for mapservice in lstStarted:
subprocess.call(['D:\GIS\Admin\AGSSOMv10.0\AGSSOM.exe', '-s', mapservice])
Para determinados servicios, como podría línea de comandos para mantener ArcIMS? No; hay una línea de comandos de la herramienta se puede descargar desde la Galería de Código (AGSSOM) que le da el núcleo de las principales áreas.
Pero no hay granular "servicio específico" nivel de control que puede utilizar en este momento para Iniciar/Detener/Actualizar/Añadir/Quitar AGS servicios. Hay en ideas.arcgis.com varios lugares con peticiones para mejorar el control de los servicios de un más automatizable ubicación.
En la misma línea que lo que Jeff Berry publicado en su respuesta, escribí una pequeña función que se encargará de gestionar los servicios de mapas de uso de la AGSSOM herramientas. En mi caso, yo llame a servicios individualmente por su nombre, de parada y de arranque de una en una.
import subprocess
def manageMapServices(command, svc, svcType):
PathToAGSSOM = r"C:\Windows\AGSSOMUtils\AGSSOM"
server = "AGSSOM"
p = subprocess.Popen(PathToAGSSOM + " " + server + " " + command + " " + svc + " " + svcType)
p.wait()
A continuación, puede llamar a un servicio por el nombre de usar-x para detener y -s para comenzar:
manageMapServices("-s", "Folder/Service", "MapServer")
En ArcGIS for Server 10.1+ puede utilizar el ArcGIS Server Administration Toolkit - 10.1+
A partir de la descripción (el énfasis es mío):
La Administración de ArcGIS Server kit de herramientas proporciona las herramientas y scripts para ayudarle a administrar su cuenta de ArcGIS Server. Estas herramientas han sido escritos en Python y la conecta con el RESTO de Administrador de ArcGIS Server que permite a rápidamente y fácilmente realizar algunas funciones administrativas, incluyendo: - Elemento de la lista
- Detener, iniciar o eliminación de un servicio
- Cambiar el nombre de un servicio
- Modificar el nivel de registro y borrar los registros antiguos
- Cargar y registrar un SOE
- La creación de un featureclass de las ubicaciones de un servicio de mapas fue visto en (por la inspección de los registros)
- Servicio De Publicación De Definiciones.SD)
Las herramientas dentro de este kit se presenta en tres formas principales: Herramientas de Código, y ejecutable independiente.