Pocketman Third D Mac OS

broken image


Full read-write access granted!

Microsoft NTFS for Mac by Paragon Software supports all alphabets supported by your operating systems, including those that use non-Roman and non-Latin characters, so you will never face the problem of not getting access to file names on volumes mounted in non-native OS.

  • This laptop is powered by Intel Core i5-3210M (3rd Gen) processor, coupled with 4 GB of RAM and has 500 GB HDD storage at this price point. It runs on MAC OS X Lion operating system.
  • Insert the DVD that you want to copy into your Mac's CD slot. If your Mac doesn't have a built-in DVD-ROM drive, you can use an external one. This method should work for most data/software DVDs and home movies. If you're trying to copy a protected DVD such as an official movie or TV series release, see the Copying a Protected DVD Movie method.
  • RELATED: 8 Mac System Features You Can Access in Recovery Mode. Your Mac's Recovery Mode is a treasure trove of useful tools, and it's the easiest way to wipe your computer and start from scratch. Shut down your Mac, turn it on while holding down Command+R. Your Mac will boot into the recovery partition.

Microsoft NTFS is one of the primary file systems of Windows. If you work on a Mac computer and need to read or write files from HDD, SSD or a flash drive formatted under Windows, you need Microsoft NTFS for Mac by Paragon Software.

Write, edit, copy, move and delete files on Microsoft NTFS volumes from your Mac! Fast, seamless, easy to use. Mount, unmount, verify, format or set any of your Microsoft NTFS volumes as a startup drive.

New! Fully compatible with new Apple Silicon M1 Mac devices

Write files to Microsoft NTFS drives on your Mac

Can't write, copy, edit or delete files on Microsoft NTFS-formatted drives from your Mac? It's because macOS has limited support for Windows volumes — that is, you can only read data, but can't write or delete anything. Microsoft NTFS for Mac by Paragon Software provides blazing fast, unlimited read/write access to Microsoft NTFS hard drives, SSDs or thumb drives formatted for Windows computers!

  • A no-brainer upgrade for those installing macOS 10.14 Mojave, Paragon NTFS for Mac remains the best cross-platform utility money can buy, especially now that it plays nice with Apple's new dark mode.

    MacWorld US, Editors' Choice 2018
    www.macworld.com

  • Whether you're a hardcore Boot Camp user or just need to occasionally write to Windows-formatted media, this update keeps things working at peak performance…

    MacWorld US, Editors' Choice 2018
    www.macworld.com

  • Running a Mac and having NTFS formatted external disks, you definitely need NTFS for Mac. It is well priced <…> and enables read and write access to your NTFS drives no matter what size. The speed at which you can read and write the data on these drives is the best of any competitor if there really is one. Anyone who needs to use Mac and Windows computers needs this app for easy data transfer. The interface is best of any application found, and the application itself offers additional drive tools for taking full control. The latest version also supports Mojave and APFS format to complete a perfect application. It is without real competition and deserves a full 5-star award. This utility makes your external storage usable on any computer system Windows or Mac. So your data remains interchangeable and is fully adapted for macOS MOJAVE.

    MacSoftReview
    www.macsoftreview.com
    September 2018

  • Microsoft NTFS for Mac by Paragon Software is a great upgrade to an exceptional cross-platform utility that's easily worth the money, especially if you own the previous version 14, in which case this one's free.
    The user interface is tastefully designed, with buttons for mounting, unmounting, verifying, or erasing the selected volume. Dual-boot users also have the option to reboot into a compatible mounted Mac or Windows startup volume. There's even a lovely color-coded space indicator like the one introduced with Mac OS X El Capitan, displaying content by Audio, Video, Apps, Images, and Other categories.

    MacWorld, USA, August 2017,
    macworld.com

  • Microsoft NTFS for Mac by Paragon Software, the excellent third-party file system driver that enables writing to Windows-formatted volumes at native speeds.

    MacWorld, USA, June 2017,
    macworld.com

  • Microsoft NTFS for Mac by Paragon Software is the best such software solution: reliable, fast, and now affordable as well…
    Fast, seamless, and easy to use, Microsoft NTFS for Mac by Paragon Software is required for those who need to write to Windows volumes. And now it's more affordable than ever.

    MacWorld, USA 2016,
    macworld.com

  • A very specialized product that does its job in a very unobtrusive way. You just install it and it works. When you plug an NTFS disk into your Mac, it just mounts on the desktop like any other disk, and when you copy a file to it, it just works, no muss, no fuss. This utility is also invaluable if you find yourself in a situation where you need to format a disk as NTFS, and it performs this task with an equal lack of drama

    Apple Press, DVMUG

  • Microsoft NTFS for Mac by Paragon Software is an essential installation for anyone working with Macs and PCs, as it helps to break down the barriers that exist between the two operating systems

    Mac World UK,
    macworld.com

  • It'll install cleanly and easily on macOS 10.12 Sierra and 'just work', so it's a good option

    How-to-Geek

  • Microsoft NTFS for Mac by Paragon Software does exactly what we expect from it, by offering a seamless NTFS disk management. It's good performances even allow working directly on the Windows partition, including for heavy applications such as video or photo processing.

    mac4ever.com

  • WOW….Ive been struggling with the whole MAC/Windows NTFS issue for some time and have a number of external drives that I need to swap between Mac/PC all the time. I've always had a headache with NTFS drivers etc. I bought and downloaded your Microsoft NTFS for Mac by Paragon Software today and WOW. Amazing. Everything just works. Brilliant product. Worth every penny. Thank you.

    Robinson Philip

  • It is pretty fast with NTFS transfers (slightly slower than OSX extended partitions obviously) and I've never had any problems mid-transfer or anything. For me, it's always done what it said on the box, and now with V14 it's got El Capitan compatibility, so no complaints here. If you're looking for a way to have plug-and-play NTFS drives on your mac, there really isn't a better alternative to Microsoft NTFS for Mac by Paragon Software. Highly recommended for all Mac users!

    M. Doyle

  • If you have a Mac and you need to access volumes that are formatted NTFS, this is the best solution out there. Why Apple hasn't just baked in support for NTFS after all these years still remains a mystery. I've been using Microsoft NTFS for Mac by Paragon Software for several years now and have never had any problems with it.

    H. Jaynes

Pocketman

Blazing Fast

Microsoft NTFS for Mac by Paragon Software is up to six times faster than any of its closest commercial competitors!

Fully Compatible

Supports macOS Big Sur
and older macOS
See Specifications

Powerful Features

Safe data transfer, hassle-free work, easy to use, seamless user experience

Apple Silicon M1 Ready

Microsoft NTFS for Mac by Paragon Software is built for the latest Apple ARM technologies and is fully compatible with M1-based Mac devices

How it Works

Simple as 1-2-3

Install

Download and install Microsoft NTFS for Mac by Paragon Software onto your Mac.

Done!

Microsoft NTFS volumes connected to your Mac are available in the Finder.

All operations just a click away!

If you need more than just a blazing fast and reliable Microsoft NTFS driver, our lightweight menubar and full-featured Microsoft NTFS for Mac by Paragon Software apps are always at your service.

Access all of your Microsoft NTFS drives and perform the most common volume operations like mount, unmount and verify.

Quickly restart your Mac in Windows from the menubar (assuming it's installed on your mounted Microsoft NTFS drive).

Seamless User Experience

If you've ever used Apple's Disk Utility, you already know how to use Microsoft NTFS for Mac by Paragon Software. If you haven't, it will only take a few moments to get acquainted.

Microsoft NTFS for Mac by Paragon Software takes the best of Apple's Disk Utility and moves it to the next level, augmenting Microsoft NTFS volume operations and advanced mount options.

Mounting is entirely under your control with advanced options

Mount in Read-Only: select this option if you need to access sensitive data without modifying any files.

Catalina

Blazing Fast

Microsoft NTFS for Mac by Paragon Software is up to six times faster than any of its closest commercial competitors!

Fully Compatible

Supports macOS Big Sur
and older macOS
See Specifications

Powerful Features

Safe data transfer, hassle-free work, easy to use, seamless user experience

Apple Silicon M1 Ready

Microsoft NTFS for Mac by Paragon Software is built for the latest Apple ARM technologies and is fully compatible with M1-based Mac devices

How it Works

Simple as 1-2-3

Install

Download and install Microsoft NTFS for Mac by Paragon Software onto your Mac.

Done!

Microsoft NTFS volumes connected to your Mac are available in the Finder.

All operations just a click away!

If you need more than just a blazing fast and reliable Microsoft NTFS driver, our lightweight menubar and full-featured Microsoft NTFS for Mac by Paragon Software apps are always at your service.

Access all of your Microsoft NTFS drives and perform the most common volume operations like mount, unmount and verify.

Quickly restart your Mac in Windows from the menubar (assuming it's installed on your mounted Microsoft NTFS drive).

Seamless User Experience

If you've ever used Apple's Disk Utility, you already know how to use Microsoft NTFS for Mac by Paragon Software. If you haven't, it will only take a few moments to get acquainted.

Microsoft NTFS for Mac by Paragon Software takes the best of Apple's Disk Utility and moves it to the next level, augmenting Microsoft NTFS volume operations and advanced mount options.

Mounting is entirely under your control with advanced options

Mount in Read-Only: select this option if you need to access sensitive data without modifying any files.

Do not mount automatically: select this option if you want to manually control access to a volume.

Outstanding performance at blazing fast speed

Microsoft NTFS for Mac by Paragon Software
is the fastest file system driver on the market:

6x times faster*

than competing solutions

*Tested on 2016 MacBook Pro with SSD drive, view benchmarks here.

Fresh review: check out the video review by European Motion Picture Association.

Latest award: 5-star review of the Mojave-ready edition.

Features

Features

Benefits

Supported Technologies

  • Intel-based Mac devices
  • ARM-based Mac devices (Apple Silicon M1)

Supported Operating Systems

  • macOS Big Sur
  • macOS Catalina
  • macOS Mojave
  • macOS High Sierra
  • macOS Sierra

Supported File Systems

All Microsoft NTFS versions are supported (from Windows NT 3.1 to Windows 10).

Write Access

When a volume is mounted in write mode, you can do everything with the files and folders it contains: read, edit, delete, rename, create new.

Automount

Microsoft NTFS for Mac by Paragon Software mounts supported volumes automatically at startup, so you don't need to worry each time you restart the operating system or power your computer on. However, this feature can be disabled at any time in the program interface.

Volume Management

Microsoft NTFS for Mac by Paragon Software easily formats, checks integrity and repairs corrupted volumes.

Internationalization

Microsoft NTFS for Mac by Paragon Software supports all alphabets supported by your operating systems, including those that use non-Roman and non-Latin characters, so you will never face the problem of not getting access to file names on volumes mounted in non-native OS.

Compatible with Apple Boot Camp

Microsoft NTFS for Mac by Paragon Software is fully compatible with Apple Boot Camp software and provides direct read and write access to Mac partitions from Windows installed on Boot Camp.

Compatible with 3rd party software

Microsoft NTFS for Mac by Paragon Software is compatible with popular virtualization and encryption applications including VMware Fusion and Workstation, Parallels Desktop, TrueCrypt and its forks.

Paragon Technology Center

Want to learn more about the technology behind Microsoft NTFS for Mac by Paragon Software? Check out the Paragon Technology Portal!

Frequently Asked Questions

Could I try your product for free before buying?
Sure, you can try Microsoft NTFS for Mac by Paragon Software for ten days completely for free. After that it will be locked until you activate a purchased license.
I'm a user of a Seagate or Western Digital device with pre-installed NTFS for Mac. How can I get my update?
You are eligible for a special update for you current version of Microsoft NTFS for Mac by Paragon Software. Please contact our Support Service at support@paragon-software.com to reclaim your update.
Does it work with the latest Apple Silicon M1 based Macs?
Yes, Microsoft NTFS for Mac by Paragon Software is built for being used with both types of processor architectures.
Does it work with macOS 11 Big Sur?
Yes, Microsoft NTFS for Mac by Paragon Software works with the latest available macOS versions.
How can I get the update if I have bought the previous version of Microsoft NTFS for Mac by Paragon Software?
Please, visit your MyParagon account. If an update is released, you will be able to download it there.
What operations do you mean saying 'Full read/write access'?
You can perform create/read/modify/copy/delete operations as usual.
What data transfer rate I will get using Microsoft NTFS for Mac by Paragon Software?
The data transfer rate is fully the same as with the native macOS file system. There you can see the statistics.
What versions and features of the Microsoft NTFS file system are supported?
Microsoft NTFS for Mac by Paragon Software supports ALL the versions of NTFS (from Windows NT 3.1 to Windows 10). Microsoft NTFS for Mac by Paragon Software is able to get access to compressed files and folders, it has no problems with sparse files and enables all the needed operations with files and folders with security permissions.
Is BootCamp supported?
Yes, we completely support all BootCamp configurations.
What should I do if I have OS X 10.9 but Microsoft NTFS for Mac by Paragon Software doesn't support OS older than 10.10?
Please follow steps below.
  1. Uninstall Microsoft NTFS for Mac 15 by Paragon Software.
  2. Restart Mac.
  3. Download Microsoft NTFS for Mac 14 by Paragon Software from your MyParagon Account.
  4. Install it.
  5. Restart Mac.
Can I re-activate my license on another Mac?
Sure. Please re-activate the product following the steps below.
  1. Log in to MyParagon portal.
  2. Find your product in the list of My Products, then click 'Show details', press 'Release license'.
  3. License status will be marked as 'Not in use': article in Paragon Knowledge Base.
  4. Then activate your product again.
How many times can I re-activate my license?
You can re-activate it 4 times. If you need to re-activate your license more than 4 times, please contact our Support or file a support ticket and we will help you to release the counter of licenses.
It doesn't work! My Microsoft NTFS drive is not recognized by macOS, even after installing Microsoft NTFS for Mac by Paragon Software.
First of all, please check that Activate/Buy buttons are shown, and (if you have started the trial period) that you see 'X days left' message. Then check NTFS for Mac Preferences and make sure that the driver is enabled. If it did not work, please check the troubleshooting guide.
I frequently work with NTFS, HFS+, APFS-formatted partitions on my Mac and Windows PC. Can I get a discount, if I buy all drivers at once?
Yes, you can purchase our new Paragon Mac ToolBox for just $39.95. The Suite contains 4 tools to guarantee seamless cross-platform data exchange and disk space management:
  • Microsoft NTFS for Maс by Paragon Software
  • APFS for Windows by Paragon Software
  • HFS+ for Windows by Paragon Software
  • Paragon CampTune

required file system drivers based on your it environment regardless of os.

Resources

Current Version

Download Microsoft NTFS for Mac by Paragon Software

Product Documentation

Download Microsoft NTFS for Mac by Paragon Software One Pager

Need help?

Contact Support or file a support ticket

Latest review

European Motion Picture Association (EURMPA) reviews Microsoft NTFS for Mac by Paragon Software. Watch the videos!

NTFS for Mac build for Apple Silicon

Apple has announced a two-year transition to ARM-based processors known as 'Apple Silicon.' Since the new Apple Silicon-based Mac computers are just around the corner, we proactively took on this project. We are delighted to offer Mac users our new NTFS for Mac build for Apple Silicon, which is available for download below.

Microsoft NTFS for Mac by Paragon Software speaks
fluently many languages:
English
Deutsch
Русский
Español
Français
Italiano
Čeština
简体中文
繁體中文
한국어
Svenska
Suomi
Magyar
Polski

If you are developing daemons to run on OS X, it is highly recommended that you design your daemons to be launchd compliant. Using launchd provides better performance and flexibility for daemons. It also improves the ability of administrators to manage the daemons running on a given system.

If you are running per-user background processes for OS X, launchd is also the preferred way to start these processes. These per-user processes are referred to as user agents. A user agent is essentially identical to a daemon, but is specific to a given logged-in user and executes only while that user is logged in.

Unless otherwise noted, for the purposes of this chapter, the terms 'daemon' and 'agent' can be used interchangeably. Thus, the term 'daemon' is used generically in this section to encompass both system-level daemons and user agents except where otherwise noted.

There are four ways to launch daemons using launchd. The preferred method is on-demand launching, but launchd can launch daemons that run continuously, and can replace inetdfor launching inetd-style daemons. In addition, launchd can start jobs at timed intervals.

Although launchd supports non-launch-on-demand daemons, this use is not recommended. The launchd daemon was designed to remove the need for dependency ordering among daemons. If you do not make your daemon be launched on demand, you will have to handle these dependencies in another way, such as by using the legacy startup item mechanism.

Launching Custom Daemons Using launchd

With the introduction of launchd in OS X v10.4, an effort was made to improve the steps needed to launch and maintain daemons. What launchd provides is a harness for launching your daemon as needed. To client programs, the port representing your daemon's service is always available and ready to handle requests. In reality, the daemon may or may not be running. When a client sends a request to the port, launchd may have to launch the daemon so that it can handle the request. Once launched, the daemon can continue running or shut itself down to free up the memory and resources it holds. If a daemon shuts itself down, launchd once again relaunches it as needed to process requests.

In addition to the launch-on-demand feature, launchd provides the following benefits to daemon developers:

  • Simplifies the process of making a daemon by handling many of the standard housekeeping chores normally associated with launching a daemon.

  • Provides system administrators with a central place to manage daemons on the system.

  • Supports inetd-style daemons.

  • Eliminates the primary reason for running daemons as root. Because launchd runs as root, it can create low-numbered TCP/IP listen sockets and hand them off to the daemon.

  • Simplifies error handling and dependency management for inter-daemon communication. Because daemons launch on demand, communication requests do not fail if the daemon is not launched. They are simply delayed until the daemon can launch and process them.

The launchd Startup Process

After the system is booted and the kernel is running, launchd is run to finish the system initialization. As part of that initialization, it goes through the following steps:

  1. It loads the parameters for each launch-on-demand system-level daemon from the property list files found in /System/Library/LaunchDaemons/ and /Library/LaunchDaemons/.

  2. It registers the sockets and file descriptors requested by those daemons.

  3. It launches any daemons that requested to be running all the time.

  4. As requests for a particular service arrive, it launches the corresponding daemon and passes the request to it.

  5. When the system shuts down, it sends a SIGTERM signal to all of the daemons that it started.

The process for per-user agents is similar. When a user logs in, a per-user launchd is started. It does the following:

  1. It loads the parameters for each launch-on-demand user agent from the property list files found in /System/Library/LaunchAgents, /Library/LaunchAgents, and the user's individual Library/LaunchAgents directory.

  2. It registers the sockets and file descriptors requested by those user agents.

  3. It launches any user agents that requested to be running all the time.

  4. As requests for a particular service arrive, it launches the corresponding user agent and passes the request to it.

  5. When the user logs out, it sends a SIGTERM signal to all of the user agents that it started.

Because launchd registers the sockets and file descriptors used by all daemons before it launches any of them, daemons can be launched in any order. If a request comes in for a daemon that is not yet running, the requesting process is suspended until the target daemon finishes launching and responds.

If a daemon does not receive any requests over a specific period of time, it can choose to shut itself down and release the resources it holds. When this happens, launchd monitors the shutdown and makes a note to launch the daemon again when future requests arrive.

Important: If your daemon shuts down too quickly after being launched, launchd may think it has crashed. Daemons that continue this behavior may be suspended and not launched again when future requests arrive. To avoid this behavior, do not shut down for at least 10 seconds after launch.

Creating a launchd Property List File

To run under launchd, you must provide a configuration property list file for your daemon. This file contains information about your daemon, including the list of sockets or file descriptors it uses to process requests. Specifying this information in a property list file lets launchd register the corresponding file descriptors and launch your daemon only after a request arrives for your daemon's services. Table 5-1 lists the required and recommended keys for all daemons.

The property list file is structured the same for both daemons and agents. You indicate whether it describes a daemon or agent by the directory you place it in. Property list files describing daemons are installed in /Library/LaunchDaemons, and those describing agents are installed in /Library/LaunchAgents or in the LaunchAgents subdirectory of an individual user's Library directory. (The appropriate location for executables that you launch from your job is /usr/local/libexec.)

Table 5-1 Required and recommended property list keys

Key

Description

Label

Contains a unique string that identifies your daemon to launchd. (required)

ProgramArguments

Contains the arguments used to launch your daemon. (required)

inetdCompatibility

Indicates that your daemon requires a separate instance per incoming connection. This causes launchd to behave like inetd, passing each daemon a single socket that is already connected to the incoming client. (required if your daemon was designed to be launched by inetd; otherwise, must not be included)

KeepAlive

This key specifies whether your daemon launches on-demand or must always be running. It is recommended that you design your daemon to be launched on-demand.

For more information: For a complete listing of the keys, see the launchd.plist manual page.

For sample configuration property lists, look at the files in /System/Library/LaunchDaemons/. These files are used to configure many daemons that run on OS X.

Writing a 'Hello World!' launchd Job

The following simple example launches a daemon named hello, passing world as a single argument, and instructs launchd to keep the job running:

In this example, there are three keys in the top level dictionary. The first is Label, which uniquely identifies the job. when. The second is ProgramArguments which has a value of an array of strings which represent the tokenized arguments and the program to run. The third and final key is KeepAlive which indicates that this job needs to be running at all times, rather than the default launch-on-demand behavior, so launchd should always try to keep this job running.

Listening on Sockets

You can also include other keys in your configuration property list file. For example, if your daemon monitors a well-known port (one of the ports listed in /etc/services), add a Sockets entry as follows:

The string for SockServiceName typically comes from the leftmost column in /etc/services. The SockType is one of dgram (UDP) or stream (TCP/IP). If you need to pass a port number that is not listed in the well-known ports list, the format is the same, except the string contains a number instead of a name. For example:

Debugging launchd Jobs

There are some options that are useful for debugging your launchd job.

The following example enables core dumps, sets standard out and error to go to a log file, and instructs launchd to temporarily increase the debug level of its logging while acting on behalf of your job (remember to adjust your syslog.conf accordingly):

Running a Job Periodically

The following example creates a job that is run every five minutes (300 seconds):

Alternately, you can specify a calendar-based interval. The following example starts the job on the 7th day of every month at 13:45 (1:45 pm). Like the Unix cron subsystem, any missing key of the StartCalendarInterval dictionary is treated as a wildcard—in this case, the month is omitted, so the job is run every month.

Monitoring a Directory

The following example starts the job whenever any of the paths being watched have changed:

An additional file system trigger is the notion of a queue directory. The launchd daemon starts your job whenever the given directories are non-empty, and it keeps your job running as long as those directories are not empty:

Emulating inetd

The launchd daemon emulates the older inetd-style daemon semantics if you provide the inetdCompatibility key:

Behavior for Processes Managed by launchd

Processes that are managed by launchd must follow certain requirements so that they interact properly with launchd. This includes launch daemons and launch agents.

Required Behaviors

To support launchd, you must obey the following guidelines when writing your daemon code:

  • You must provide a property list with some basic launch-on-demand criteria for your daemon. See Creating a launchd Property List File.

  • You must not daemonize your process. This includes calling the daemon function, calling fork followed by exec, or calling fork followed by exit. If you do, launchd thinks your process has died. Depending on your property list key settings, launchd will either keep trying to relaunch your process until it gives up (with a 'respawning too fast' error message) or will be unable to restart it if it really does die.

  • Daemons and agents that are installed globally must be owned by the root user. Agents installed for the current user must be owned by that user. All daemons and agents must not be group writable or world writable. (That is, they must have file mode set to 600 or 400.)

Recommended Behaviors

To support launchd, it is recommended that you obey the following guidelines when writing your daemon code:

  • Wait until your daemon is fully initialized before attempting to process requests. Your daemon should always provide a reasonable response (rather than an error) when processing requests.

  • Register the sockets and file descriptors used by your daemon in your launchd configuration property list file.

  • If your daemon advertises a socket, check in with launchd as part of your daemon initialization. For an example implementation of the check-in process, see SampleD.

  • During check-in, get the launch dictionary from launchd, extract and store its contents, and then discard the dictionary. Accessing the data structure used for the dictionary is very slow, so storing the whole dictionary locally and accessing it frequently could hurt performance.

  • Provide a handler to catch the SIGTERM signal.

In addition to the preceding list, the following is a list of things it is recommended you avoid in your code:

  • Do not set the user or group ID for your daemon. Include the UserName, UID, GroupName, or GID keys in your daemon's configuration property list instead.

  • Do not set the working directory. Include the WorkingDirectory key in your daemon's configuration property list instead.

  • Do not call chroot to change the root directory. Include the RootDirectory key in your daemon's configuration property list instead.

  • Do not call setsid to create a new session.

  • Do not close any stray file descriptors.

  • Do not change stdio to point to /dev/null. Include the StandardOutPath or StandardErrorPath keys in your daemon's configuration property list file instead.

  • Do not set up resource limits with setrusage.

  • Do not set the daemon priority with setpriority

Although many of the preceding behaviors may be standard tasks for daemons to perform, they are not recommended when running under launchd. The reason is that launchd configures the operating environment for the daemons that it manages. Changing this environment could interfere with the normal operation of your daemon.

Deciding When to Shut Down

If you do not expect your daemon to handle many requests, you might want to shut it down after a predetermined amount of idle time, rather than continue running. Although a well-written daemon does not consume any CPU resources when idle, it still consumes memory and could be paged out during periods of intense memory use.

The timing of when to shut down is different for each daemon and depends on several factors, including:

  • The number and frequency of requests it receives

  • The time it takes to launch the daemon

  • The time it takes to shut down the daemon

  • The need to retain state information

If your daemon does not receive frequent requests and can be launched and shut down quickly, you might prefer to shut it down rather than wait for it to be paged out to disk. Paging memory to disk, and subsequently reading it back, incurs two disk operations. If you do not need the data stored in memory, your daemon can shut down and avoid the step of writing memory to disk.

Special Dependencies

While launchd takes care of dependencies between daemons, in some cases, your daemon may depend on other system functionality that cannot be addressed in this manner. This section describes many of these special cases and how to handle them.

Network Availability

Pocketman Third D Mac Os Catalina

If your daemon depends on the network being available, this cannot be handled with dependencies because network interfaces can come and go at any time in OS X. To solve this problem, you should use the network reachability functionality or the dynamic store functionality in the System Configuration framework. This is documented in System Configuration Programming Guidelines and System Configuration Framework Reference. For more information about network reachability, see Determining Reachability and Getting Connected in System Configuration Programming Guidelines.

Disk or Server Availability

If your daemon depends on the availability of a mounted volume (whether local or remote), you can determine the status of that volume using the Disk Arbitration framework. This is documented in Disk Arbitration Framework Reference.

Non-launchd Daemons

Pocketman Third D Mac Os Downloads

If your daemon has a dependency on a non-launchd daemon, you must take additional care to ensure that your daemon works correctly if that non-launchd daemon has not started when your daemon is started. The best way to do this is to include a loop at start time that checks to see if the non-launchd daemon is running, and if not, sleeps for several seconds before checking again.

Be sure to set up handlers for SIGTERM prior to this loop to ensure that you are able to properly shut down if the daemon you rely on never becomes available.

User Logins

In general, a daemon should not care whether a user is logged in, and user agents should be used to provide per-user functionality. However, in some cases, this may be useful.

Pocketman Third D Mac Os Download

To determine what user is logged in at the console, you can use the System Configuration framework, as described in Technical Q&A QA1133.

Kernel Extensions

If your daemon requires that a certain kernel extension be loaded prior to executing, you have two options: load it yourself, or wait for it to be loaded.

The daemon may manually request that an extension be loaded. To do this, run kextload with the appropriate arguments using exec or variants thereof. I/O Kit kernel extensions should not be loaded with kextload; the I/O Kit will load them automatically when they are needed.

Note: The kextload executable must be run as root in order to load extensions into the kernel. For security reasons, it is not a setuid executable. This means that your daemon must either be running as the root user or must include a helper binary that is setuid root in order to use kextload to load a kernel extension.

Alternatively, our daemon may wait for a kernel service to be available. To do this, you should first register for service change notification. This is further documented in I/O Kit Framework Reference.

After registering for these notifications, you should check to see if the service is already available. By doing this after registering for notifications, you avoid waiting forever if the service becomes available between checking for availability and registering for the notification.

Note: In order for your kernel extension to be detected in a useful way, it must publish a node in the I/O registry to advertise the availability of its service. For I/O Kit drivers, this is usually handled by the I/O Kit family.

For other kernel extensions, you must explicitly register the service by publishing a nub, which must be an instance of IOService.

For more information about I/O Kit services and matching, see IOKit Fundamentals, I/O Kit Framework Reference (user space reference), and Kernel Framework Reference (kernel space reference).

For More Information

The manual pages for launchd and launchd.plist are the two best sources for information about launchd.

In addition, you can find a source daemon accompanying the launchd source code (available from http://www.macosforge.org/). This daemon is also provided from the Mac Developer Library as the SampleD sample code project.

The Daemons and Agents technical note provides additional information about how launchd daemons and agents work under the hood.

Finally, many Apple-provided daemons support launchd. Their property list files can be found in /System/Library/LaunchDaemons. Some of these daemons are also available as open source from http://www.opensource.apple.com/ or http://www.macosforge.org/.

Pocketman Third D Mac Os X



Copyright © 2003, 2016 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2016-09-13





broken image