objective-c – NSTask运行脚本
发布时间:2020-12-16 06:59:53 所属栏目:百科 来源:网络整理
导读:我试图用NSTask运行以下命令: $sudo launchctl load /Users/admin/Library/LaunchAgents/com.devdaily.crontabtest.plist 以下是我使用的代码: NSTask *server = [NSTask new];[server setLaunchPath:@"/bin/launchctl"];[server setArguments:[NSArray ar
我试图用NSTask运行以下命令:
$sudo launchctl load /Users/admin/Library/LaunchAgents/com.devdaily.crontabtest.plist 以下是我使用的代码: NSTask *server = [NSTask new]; [server setLaunchPath:@"/bin/launchctl"]; [server setArguments:[NSArray arrayWithObjects:@"load",@"com.devdaily.crontabtest.plist",nil]]; [server setCurrentDirectoryPath:@"/Users/admin/Library/LaunchAgents/"]; NSPipe *outputPipe = [NSPipe pipe]; [server setStandardInput:[NSPipe pipe]]; [server setStandardOutput:outputPipe]; [server launch]; [server waitUntilExit]; // Alternatively,make it asynchronous. [server release]; 但是,由于sudo命令,它不起作用.我怎样才能解决这个问题? 解决方法
不幸的是,你做不到.因为无法输入密码.
但是,您仍然可以使用NSAppleScript而不是NSTask来运行bash命令: 使用管理员权限执行shell脚本[您的命令] 系统将要求您输入管理员密码. 例: NSDictionary *error = [NSDictionary new]; NSString *script = @"do shell script "launchctl load /Users/admin/Library/LaunchAgents/com.devdaily.crontabtest.plist" with administrator privileges"; NSAppleScript *appleScript = [[NSAppleScript new] initWithSource:script]; if ([appleScript executeAndReturnError:&error]) { NSLog(@"success!"); } else { NSLog(@"failure!"); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- react-router – 从ReactRouter.browserHistory获取以前的路
- cocos2d-x 开发常用代码(3.0)
- 【转】Flash Builder 4.5中的编码工作效率增强
- Cocos2d-x--iOS平台lua加密成luac资源方法和Jsc文件<MAC平台
- Flex点击弹出菜单示例
- Vue.js仿微信聊天窗口展示组件功能
- FormData 异步上传文件
- vue使用element-ui的el-input监听不了回车事件的解决方法
- reactjs – 升级React-Router并用browserHistory替换hashHi
- ruby-on-rails – 在Rails中,使用find with:select后,我的