Montar un disco RAM en el inicio, pero parece que se desmonta automáticamente

1

Escribí un script simple que monta un disco RAM:

%> cat /System/Library/LaunchDaemons/ramdisk.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>Ramdisk</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/setup_run_shm</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>UserName</key>
    <string>root</string>
</dict>
</plist>

Pero cuando inicié sesión, el disco se ha ido. Parece que el disco está desmontado. No estoy muy seguro de por qué. Según /tmp/log.1 no hay errores.

P.S adjunta el script setup_run_shm:

%> cat /usr/local/bin/setup_run_shm
#!/bin/bash

exec &> /tmp/log.1
date
set -x

size=$(( 1024*1024*8 ))
path=/run/shm/
name="SHM"

if mount | grep -q '/run/shm'; then
    echo RAM disk already exist.
    echo 'Eject the disk and try again. (e.g hdiutil eject /dev/diskX)'
    exit
fi

disk=$(hdiutil attach -nomount ram://"$size")
echo Attached RAM disk $disk

newfs_hfs -v "$name" $disk
echo Formatted RAM disk with name $name

mount -t hfs $disk "$path"
echo Mounted ram disk of size $size to $path
    
pregunta daisy 05.01.2015 - 15:25

1 respuesta

1

No estoy seguro de si esta es realmente una respuesta a tu pregunta, pero este Applescript funciona para mí, se ejecuta como una aplicación.

set RAMDisk to "RAM_Disk" as text
tell application "Finder"
    if not {exists disk RAMDisk} then
        set VolumeName to RAMDisk
        set SizeInMB to 1024
        set NumSectors to ((2 * 1024 * SizeInMB))
        set DeviceName to do shell script "hdid -nomount ram://" & NumSectors
        do shell script "diskutil eraseVolume 'HFS+' '" & VolumeName & "' " & DeviceName
        do shell script "SetFile -a V /Volumes/" & VolumeName       
    end if  
end tell

Necesita las herramientas de línea de comandos del desarrollador instaladas para ejecutarse, pero preguntará & instalación automática si no está presente.

    
respondido por el Tetsujin 05.01.2015 - 17:47

Lea otras preguntas en las etiquetas