pythonic wrapper for OS X launchd
Project description
python-launchd - pythonic interface for launchd
launchd is a pythonic interface to interact with OS X’s launchd. It provides access to basic querying and interaction with launchd. It is implemented using the Objective C ServiceManagement framework as well as the launchd command line utility. Therefore, this python package can only be used on OS X
The python objective C bridge contains some special types. This package strips off all non built-in type information and returns pure python data.
Examples
The relevant import statement is:
import launchd
Listing all launchd jobs:
for job in launchd.jobs():
print(job.label, job.pid, job.status, job.properties, job.plistfilename)
Find the pid and laststatus of a job:
>>> launchd.LaunchdJob("com.apple.Finder").pid
278
>>> launchd.LaunchdJob("com.apple.Finder").laststatus
0
>>> launchd.LaunchdJob("com.example.fubar").pid
Traceback (most recent call last):
File "launchd/launchctl.py", line 78, in refresh
raise ValueError("job '%s' does not exist" % self.label)
ValueError: job 'com.example.fubar' does not exist
Detect if a job exists:
>>> launchd.LaunchdJob("com.example.fubar").exists()
False
launchd job properties (these come directly from launchd and NOT the .plist files):
>>> launchd.LaunchdJob("com.apple.Finder").properties
{'OnDemand': 1, 'PID': 278, 'PerJobMachServices': {'com.apple.coredrag': 0, 'com.apple.axserver': 0, 'com.apple.CFPasteboardClient': 0, 'com.apple.tsm.portname': 0}, 'LimitLoadToSessionType': 'Aqua', 'Program': '/System/Library/CoreServices/Finder.app/Contents/MacOS/Finder', 'TimeOut': 30, 'LastExitStatus': 0, 'Label': 'com.apple.Finder', 'MachServices': {'com.apple.finder.ServiceProvider': 10}}
>>> launchd.LaunchdJob("com.apple.Finder").properties["OnDemand"]
1
Find all plist filenames of currently running jobs:
for job in launchd.jobs():
if job.pid is None or job.plistfilename is None:
continue
print(job.plistfilename)
Job properties of a given job (this uses the actual .plist file):
>>> launchd.plist.read("com.apple.kextd")
{'ProgramArguments': ['/usr/libexec/kextd'], 'KeepAlive': {'SuccessfulExit': False},
'POSIXSpawnType': 'Interactive', 'MachServices': {'com.apple.KernelExtensionServer':
{'HostSpecialPort': 15}}, 'Label': 'com.apple.kextd'}
Installation
# NOT YET AVAILABLE
$ pip install launchd
or, if you want to work using the source tarball:
$ python setup.py install
Requirements
OS X >= 10.6
Python 2.7, 3.2 or 3.3
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file launchd-0.1.tar.gz
.
File metadata
- Download URL: launchd-0.1.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
19b15b6ba4c8acef0c4ee017279fde1b6252c7030c29b77797811c902fa6d689
|
|
MD5 |
f62b853ff019a593c8e0c2d5a0b12713
|
|
BLAKE2b-256 |
ac4879bf175c7f03b976e9509e129ba13d5e0a7e6c07ec5c9205f2e3f98c9437
|