Bazı nedenlerden dolayı, oluşturduğum lansman arka planı sistem önyüklemesinde başarıyla çalışmayacak. Bir lansman ajanı olarak denedim ama bu da işe yaramadı.
Bu, benim / Library / LaunchDaemons dizinindeki pistim:
<?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>
İlginçtir, komut dosyası elle çalıştırılırsa doğru çalışır, sadece arka plandaki program aracılığıyla değil. Ve açılıştan sonra launchctl listesini çalıştırırken, com.inetmac4.status için durum 0'dır, fakat script hiç çalışmadı.
Herhangi bir yardım çok takdir edilecektir! Googled'im ama buradaki çözümlerin hiçbiri benim için işe yaramadı.
EDIT: 10.8.5’de Mac Pro’da çalıştırmaya çalıştığım belirtilmelidir.
EDIT2: Ve senaryo:
`#!/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
ve 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);