Per qualche motivo, il demone di avvio che ho creato non verrà eseguito correttamente all'avvio del sistema. L'ho provato come un launch agent ma anche questo non funziona.
Questo è il mio plist situato in / Library / LaunchDaemons:
<?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>com.inetmac4.status</string>
<key>ProgramArguments</key>
<array>
<string>/bin/sh</string>
<string>/Users/inetmac4/script/VMSTATUS/vmstatus_startup</string>
</array>
<key>KeepAlive</key>
<false/>
</dict>
</plist>
È interessante notare che lo script viene eseguito correttamente se eseguito manualmente, ma non attraverso il demone. E quando si esegue la lista launchctl dopo l'avvio, lo stato di com.inetmac4.status è 0, ma lo script non sembra mai essere eseguito.
Qualsiasi aiuto sarebbe molto apprezzato! Ho cercato su Google ma nessuna delle soluzioni che ho trovato funzionerà per me.
EDIT: Va notato che sto cercando di eseguirlo su un Mac Pro su 10.8.5
EDIT2: E lo script:
'#!/bin/bash
#cd /Users/inetmac4/
#python -m SimpleHTTPServer > ~/outfile 2> ~/errfile < /dev/null & disown
cd /Users/inetmac4/Script/VMSTATUS/
./VM.sh > ~/outfile 2> ~/errfile < /dev/null & disown'
VM.sh:
#!/bin/sh
# VM.sh
#
#
# Created by INETMac4 on 9/12/13.
#
COUNTER=0
while [ 1 ]; do
perl VM_STATUS.pl
let COUNTER=COUNTER+1
sleep 5
done
e VM_STATUS.pl:
#!/usr/bin/perl
use Data::Dumper;
#-- the same command in list context
my @result = 'prlctl list --all';
shift @result;
open (VMSTATUS, '>/Users/inetmac4/Sites/index.html');
open (USERLOG, '</Users/inetmac4/script/username_log.txt');
my @user_log = <USERLOG>;
my @user_log = reverse(@user_log);
my @user_status;
my %hash = ();
foreach (@user_log){
my @values = split(/\/), $_;
my $computer_name = $values[1];
if (exists($hash{ $computer_name }) == 0){
$hash{ $computer_name } = 'true';
push(@user_status, $_);
}
}
my @user_status_formatted;
# Replaces domain name with OS type
foreach (@user_status){
my @values = split(/\/), $_;
if ($values[1] =~ /PSSTEAM-W7VPC/){
push(@user_status_formatted, $values[0] . '\' . "Windows 7" . '\' . $values[2]. '\' . $values[3])
}
if ($values[1] =~ /PSSTEAM-W8VPC/){
push(@user_status_formatted, $values[0] . '\' . "Windows 8" . '\' . $values[2]. '\' . $values[3])
}
if ($values[1] =~ /PSSTEAM-XPVPC/){
push(@user_status_formatted, $values[0] . '\' . "Windows XP" . '\'. $values[2]. '\' . $values[3])
}
}
#print Dumper %hash;
#print @result;
foreach (@result){
my @columns = split(/\s+/), $_;
my $name = $columns[3]." ".$columns[4];
print VMSTATUS "<b>Virtual Machine: </b>". '<a href="VM_Start_INETMAC4_Windows7.cgi">'.$name."</a></br>\n";
print VMSTATUS "<b>STATUS:</b> ". $columns[1]."</br>\n";
if ($name =~ 'Windows 8.1'){
print VMSTATUS "</br>\n";
}
foreach (@user_status_formatted){
my @values = split(/\/), $_;
if ($values[0] =~ 'LOGGEDOUT' && $values[1] =~ $name){
print VMSTATUS "<b>User:</b> Loggedout/ No user"."\n</br></br>";
last;
}
if ($values[1] =~ $name){
print VMSTATUS "<b>User: </b> " . $values[2] . "\" . $values[3]."\n</br></br>";
}
}
print VMSTATUS "<hr>";
}
close (VMSTATUS);