zoukankan      html  css  js  c++  java
  • [CentOS Server] Bug when calling matlab in bash

    尝试了好几遍,仍然不能用简写命令调用matlab,这里把过程记录如下。

    (1). 登录 server

    [She@She ~]$ ssh shecl@xx.xx.xx.xx
    Last login: Mon Aug 15 10:59:03 2016 from xx.xx.xx.xx
    -bash: module: command not found
    -bash: module: command not found
    -bash: setenv: command not found
    -bash: setenv: command not found
    bash: setenv: command not found...

    (2). 有关 server 的 shell,环境变量等简单信息

    [shecl@192 ~]$ echo $0
    -bash
    
    [shecl@192 ~]$ pwd
    /home/shecl
    
    [shecl@192 ~]$ echo $PATH
    /opt/pgi/linux86-64/10.6/bin:/usr/lib64/qt-3.3/bin:/usr/lib64/openmpi/bin/:/usr/lib64/mpich/bin/:/opt/pgi/linux86-64/10.6/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/shecl/.local/bin:/home/shecl/bin:/usr/local/MATLAB/R2015b/bin:/usr/local/MATLAB/R2015b/bin/glnxa64
    
    [shecl@192 ~]$ which matlab
    alias matlab='/usr/local/MATLAB/R2015b/bin/matlab'
        /usr/local/MATLAB/R2015b/bin/matlab
    
    [shecl@192 ~]$ alias
    alias egrep='egrep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias grep='grep --color=auto'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias matlab='/usr/local/MATLAB/R2015b/bin/matlab'
    alias mpirun='mpirun -x LD_PRELOAD=libmpi.so'
    alias ncdump='/opt/netcdf/bin/ncdump'
    alias opendir='nautilus'
    alias openpdf='xdg-open'
    alias vi='vim'
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

    (3). 以简写命令的方式前台调用 matlab,成功。结果如下:

    [shecl@192 ~]$ matlab
    MATLAB is selecting SOFTWARE OPENGL rendering.
    
                                < M A T L A B (R) >
                      Copyright 1984-2015 The MathWorks, Inc.
                       R2015b (8.6.0.267246) 64-bit (glnxa64)
                                  August 20, 2015
    
     
    To get started, type one of these: helpwin, helpdesk, or demo.
    For product information, visit www.mathworks.com.
     
    >> datevec(now)
    
    ans =
    
       1.0e+03 *
    
        2.0160    0.0080    0.0150    0.0170    0.0110    0.0030
    
    >> exit

    (4). 测试用的 matlab 脚本: script.m

    [shecl@192 ~]$ cat script.m
    disp(['This demo for matlab ',datestr(now,'yyyy-mm-dd HH:MM:SS')]);
    disp('Time of 127s pause');
    pause(127);
    disp(['Time is out on ',datestr(now,'yyyy-mm-dd HH:MM:SS')]);

    (5). 以绝对路径的方式后台调用 matlab,成功。结果如下:

    [shecl@192 ~]$ nohup /usr/local/MATLAB/R2015b/bin/matlab -nojvm -nodisplay -nosplash -nodesktop < script.m 1>running.log 2>running.err &
    [1] 41182>> [shecl@192 ~]$ cat running.log
    
                                < M A T L A B (R) >
                      Copyright 1984-2015 The MathWorks, Inc.
                       R2015b (8.6.0.267246) 64-bit (glnxa64)
                                  August 20, 2015
    
     
    For online documentation, see http://www.mathworks.com/support
    For product information, visit www.mathworks.com.
     
    >> This demo for matlab 2016-08-15 11:37:25
    >> Time of 127s pause
    >> >> Time is out on 2016-08-15 11:39:32
    >> >> [1]+  Done                    nohup /usr/local/MATLAB/R2015b/bin/matlab -nojvm -nodisplay -nosplash -nodesktop < script.m > running.log 2> running.err

    (6). 以简写命令的方式后台调用 matlab,失败。结果如下:

    [shecl@192 ~]$ nohup matlab -nojvm -nodisplay -nosplash -nodesktop < script.m 1>running.log 2>running.err &
    [1] 41076
    [shecl@192 ~]$ cat running.log
    
        matlab: No MATLAB bin directory for this machine architecture.
    
               ARCH = glnxa64
    
    [1]+  Exit 1                  nohup matlab -nojvm -nodisplay -nosplash -nodesktop < script.m > running.log 2> running.err

    (7). bug 描述

    [shecl@192 ~]$ nohup /usr/local/MATLAB/R2015b/bin/matlab -nojvm -nodisplay -nosplash -nodesktop < script.m 1>running.log 2>running.err &   # 调用成功
    [shecl@192 ~]$ nohup matlab                              -nojvm -nodisplay -nosplash -nodesktop < script.m 1>running.log 2>running.err &   # 调用失败

    (8). 修复建议,因权限问题,未解决

    可以用创建软链接 (ln -s) 的方式修复这个 bug,但是,没有权限来执行该操作。其原因可能是远程登录时限制了权限,需要在主机上操作;也可能是该用户名未分配该权限,需要切换到超级管理员。为安全起见,不建议使用超级管理员远程登录服务器。

    [shecl@192 ~]$ sudo ln -s /usr/local/MATLAB/R2015b/bin/matlab /usr/local/bin/matlab
    [sudo] password for shecl: 
    Sorry, user shecl is not allowed to execute '/bin/ln -s /usr/local/MATLAB/R2015b/bin/matlab /usr/local/bin/matlab' as root on 192.168.0.45.

    记录完毕。

  • 相关阅读:
    Web 服务编程,REST 与 SOAP
    ODI调用WebService---->OdiInvokeWebService
    Using Custom Java code in ODI
    ODI---->Variables
    Oracle---->Join
    SQLserver中用convert函数转换日期格式
    ORA-00942 表或视图不存在
    GoldenGate 12c + Oracle 12c Multitenant Container databases
    goldengate 12c 针对oracle 12c配置的主要变化
    GoldenGate 配置extract,replicat进程自启动
  • 原文地址:https://www.cnblogs.com/snake553/p/5773212.html
Copyright © 2011-2022 走看看