# ProcessService

> *This is an experimental feature.* The ProcessService allows you to start slave instance of UnityEditor, opened to the same Project as the master instance, with a specific RoleProviderAttribute.

## Definition

* **Type:** Class
* **Namespace:** [UnityEditor.MPE](/engine/6000.6/script-reference/unityeditor/mpe.md)
* **Assembly:** UnityEditor.CoreModule

```csharp
public class ProcessService
```

## Remarks

The Standalone Profiler workflow uses this technology.

## Static Properties

| Property                                                                               | Description                                                                                                                                                                                                                                                                                                                                                                                  |
| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [level](/engine/6000.6/script-reference/unityeditor/mpe/processservice/level.md)       | The [ProcessLevel](/engine/6000.6/script-reference/unityeditor/mpe/processlevel.md) of the running instance of UnityEditor.                                                                                                                                                                                                                                                                  |
| [roleName](/engine/6000.6/script-reference/unityeditor/mpe/processservice/rolename.md) | The role name of the running UnityEditor process. For more information about how to register handlers for a specific process role, see [RoleProviderAttribute](/engine/6000.6/script-reference/unityeditor/mpe/roleproviderattribute.md). For a UnityEditor process of [ProcessLevel](/engine/6000.6/script-reference/unityeditor/mpe/processlevel.md) Master, the roleName is always empty. |

## Static Methods

| Method                                                                                                                 | Description                                                                                                                  |
| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| [DisableProfileConnection](/engine/6000.6/script-reference/unityeditor/mpe/processservice/disableprofileconnection.md) | Closes the Profiler connection.                                                                                              |
| [EnableProfileConnection](/engine/6000.6/script-reference/unityeditor/mpe/processservice/enableprofileconnection.md)   | Enables a connection to the Profiler. The standalone Profiler uses this method.                                              |
| [GetProcessState](/engine/6000.6/script-reference/unityeditor/mpe/processservice/getprocessstate.md)                   | Gets the [ProcessState](/engine/6000.6/script-reference/unityeditor/mpe/processstate.md) of a given instance of UnityEditor. |
| [HasCapability](/engine/6000.6/script-reference/unityeditor/mpe/processservice/hascapability.md)                       | Checks whether the current process has a given capability.                                                                   |
| [IsChannelServiceStarted](/engine/6000.6/script-reference/unityeditor/mpe/processservice/ischannelservicestarted.md)   | Checks whether the [ChannelService](/engine/6000.6/script-reference/unityeditor/mpe/channelservice.md) is already started.   |
| [Launch](/engine/6000.6/script-reference/unityeditor/mpe/processservice/launch.md)                                     | Launches a secondary instance of UnityEditor on the same project as the master instance.                                     |
| [ReadParameter](/engine/6000.6/script-reference/unityeditor/mpe/processservice/readparameter.md)                       | A utility function to read command line arguments passed to the current process.                                             |
| [Terminate](/engine/6000.6/script-reference/unityeditor/mpe/processservice/terminate.md)                               | Terminates an editor process.                                                                                                |

## Static Events

| Member                                                                                                     | Description                                                                                                                                                                                         |
| ---------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [ProcessExitedEvent](/engine/6000.6/script-reference/unityeditor/mpe/processservice/processexitedevent.md) | An event triggered in a master instance of UnityEditor when you start a slave instance with [ProcessService.Launch](/engine/6000.6/script-reference/unityeditor/mpe/processservice/launch.md) exit. |
