Wednesday, 23 December 2015

How to install SQLPLUS client in linux

 How to install SQL * PLUS client in Linux ?


Its really very simple steps to do this, and very crazy while dependency for compatibility with OS (x32 bit or x64 bit).

I have done for x64 bit Linux UBUNTU. Usally Oracle provides .rpm packages , and you need to download those packages into  your machine.

Download here.

Assuming that you have already installed Oracle Database , else you are connecting some remote database. Because, this post only show the sqlplus installation to connect existing database.

Downloaded files :-

oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
oracle-instantclient12.1-sqlplus-12.1.0.1.0-1.x86_64.rpm

Copy these files to your prefered location. I have  used below location.

/usr/java


Now time for convert these .rpm packages into debian specific package and install on your Ubuntu. Use alien command to convert.


Follow the below steps and install one-by-one.

First install the sqlplus :-


dev@javadevelopersguide-developer-desktop /usr/java $ sudo alien -i oracle-instantclient12.1-sqlplus-12.1.0.1.0-1.x86_64.rpm

[sudo] password for dev:

dpkg --no-force-overwrite -i oracle-instantclient12.1-sqlplus_12.1.0.1.0-2_amd64.deb

Selecting previously unselected package oracle-instantclient12.1-sqlplus.

(Reading database ... 226951 files and directories currently installed.)

Unpacking oracle-instantclient12.1-sqlplus (from oracle-instantclient12.1-sqlplus_12.1.0.1.0-2_amd64.deb) ...

Setting up oracle-instantclient12.1-sqlplus (12.1.0.1.0-2) ...


Second install the basic (packages) :-


dev@javadevelopersguide-developer-desktop /usr/java $ sudo alien -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
dpkg --no-force-overwrite -i oracle-instantclient12.1-basic_12.1.0.2.0-2_amd64.deb

Selecting previously unselected package oracle-instantclient12.1-basic.

(Reading database ... 226963 files and directories currently installed.)

Unpacking oracle-instantclient12.1-basic (from oracle-instantclient12.1-basic_12.1.0.2.0-2_amd64.deb) ...

Setting up oracle-instantclient12.1-basic (12.1.0.2.0-2) ...

Processing triggers for libc-bin ...

ldconfig deferred processing now taking place
 

Third install the devel :-




dev@javadevelopersguide-developer-desktop /usr/java $ sudo alien -i oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm

dpkg --no-force-overwrite -i oracle-instantclient12.1-devel_12.1.0.2.0-2_amd64.deb

Selecting previously unselected package oracle-instantclient12.1-devel.

(Reading database ... 226981 files and directories currently installed.)

Unpacking oracle-instantclient12.1-devel (from oracle-instantclient12.1-devel_12.1.0.2.0-2_amd64.deb) ...

Setting up oracle-instantclient12.1-devel (12.1.0.2.0-2) ...

Once these installation complete, you can start sqlplus using below command. Either you can use your specific user/password with correct server address.


dev@javadevelopersguide-developer-desktop /usr/java $ sqlplus / as sysdba

Good to go if no error, else follow with fixing below !! Good luck.


Note - You may face the below library missing issue while executing sqlplus command. Error below :-


dev@javadevelopersguide-developer-desktop /usr/java $ sqlplus / as sysdba

sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory



Now this issue saying the lib is not loading, the sqlplus is complaining about the missing library.


So you need to edit the oracle.conf and provide the correct lib path (i.e : /usr/lib/oracle/12.1/client64/lib).Add this path into oracle.conf file.




dev@javadevelopersguide-developer-desktop /usr/java $ sudo vi /etc/ld.so.conf.d/oracle.conf

/usr/lib/oracle/12.1/client64/lib





Now, you should be able to connect to your preferred Database. I have connected to our remote server as below :



dev@javadevelopersguide-developer-desktop /usr/java $ sqlplus my_user/my_password@z2customdb01.ztest/z2custom.zenv.mycompanyadd.com.in
SQL*Plus: Release 12.1.0.1.0 Production on Wed Dec 23 16:30:02 2015
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Last Successful login time: Wed Dec 23 2015 16:18:22 +11:00

Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning option
SQL>

SQL>



Yes, its working. Hope it will help you.




Follow for more details on Google+ and @Facebook!!!

Find More :-

Tuesday, 3 November 2015

AMQ_SCHEDULED_DELAY not working correctly


AMQ_SCHEDULED_DELAY not working correctly


After the below method implemenation , I am able to send the message to the ActiveMQ queue. But, the delay period is not working correctly.

Here I have the mentioned the delay period as 60000 ms (i.e. 1 mins).


public void sendMessage(final String xmlMessage) {
        try {
            jmsTemplate.send("Your_Queue_Name", new MessageCreator() {
                public Message createMessage(final Session session)
                    throws JMSException {
                    Message message = session.createTextMessage(xmlMessage);
                    message.setLongProperty(
                        ScheduledMessage.AMQ_SCHEDULED_DELAY,
                        60000));
                    return message;
                }
            });
        } catch (Exception e) {
            //"Error occured :: Sending to queue failed "
        }
    }

The message is throwing immidiatly via onMessage(). It means the message is not taking the  ScheduledMessage.AMQ_SCHEDULED_DELAY for my specified message.
After subsequent analysis and investigation , I found we need to configure the schedulerSupport="true" in broker.



Add schedulerSupport="true" in the broker config file (/conf/activemq.xml).

Sample :-
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" schedulerSupport="true">

Hope it will help you.



Monday, 2 November 2015

What is Sonar?

What is Sonar or SonarQube ?



SonarQube is an open platform to manage code quality. Basically its at platform or tool by using we can improve the code quality and code coverage. You can find how to configure sonar on your local machine here.

Donwload the sonar jars .


More info Sonar.




Hope it will help you. Happy and quality development.


Follow for more details on Google+ and @Facebook!!!



See More  -

Thursday, 22 October 2015

How to configure Sonar ?

Its really very important to maintain the code quality as a developer. Sonar is an open platform to manage code quality. 

How to configure Sonar ?


Its really not very easy, but bit tricky. Follow the below steps to configure the your local machine. I have used Linux (Ubuntu) machine to do this setup.

Download the Sonar. I have downloaded the verion sonar-3.7.3.
 
Then unzip the downloaded file and go to the /bin directory. You can go to any of the below folders as per your machine architecture.


dev@xxx-developer bin # ls -ltr
total 44
drwxrwxrwx 3 root java 4096 Oct  9 11:51 linux-x86-32
drwxrwxrwx 3 root java 4096 Oct  9 11:51 macosx-universal-32
drwxrwxrwx 3 root java 4096 Oct  9 11:51 solaris-sparc-64
drwxrwxrwx 3 root java 4096 Oct  9 11:51 windows-x86-32
drwxrwxrwx 3 root java 4096 Oct  9 11:51 solaris-sparc-32
drwxrwxrwx 3 root java 4096 Oct  9 11:51 linux-ppc-64
drwxrwxrwx 2 root java 4096 Oct  9 11:51 jsw-license
drwxrwxrwx 3 root java 4096 Oct  9 11:51 macosx-universal-64
drwxrwxrwx 3 root java 4096 Oct  9 11:51 windows-x86-64
drwxrwxrwx 3 root java 4096 Oct  9 11:51 solaris-x86-32
drwxrwxrwx 3 root java 4096 Oct 23 00:04 linux-x86-64

Here I am using 64bit linux, so I am using linux-x86-64.

/usr/java/sonar-3.7.3/bin/linux-x86-64

Now, start the Sonar.
dev@xxx-developer linux-x86-64 # ./sonar.sh start
Starting sonar...
Removed stale pid file: /usr/java/sonar-3.7.3/bin/linux-x86-64/./sonar.pid
Started sonar.
dev@xxx-developer linux-x86-64 # pwd
/usr/java/sonar-3.7.3/bin/linux-x86-64

Now check on the browser for whether sonar is running on not.

http://localhost:9001/



Normally it runs over 9001 port always. You can also configure this port  /conf folder.

/usr/java/sonar-3.7.3/conf/sonar.properties

#---------------------------------------------------------
# WEB SETTINGS - STANDALONE MODE ONLY
# These settings are ignored when the war file is deployed to a JEE server.
#---------------------------------------------------------
# Listen host/port and context path (for example / or /sonar). Default values are 0.0.0.0:9000/.
#sonar.web.host:                           0.0.0.0
sonar.web.port:                           9001


You can check the status for sonar is running or not .

dev@xxx-developer linux-x86-64 # ./sonar.sh status

sonar is running (20135).


Maven Settings :-

Setting in Maven settings.xml :-

      <profile>
        <id>sonar</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
                    <sonar.host.url>http://localhost:9001</sonar.host.url>
        </properties>
    </profile>


This above maven setting is required if you want to run the sonar from maven build. While building the maven project from terminal as sample below :

dev@xxx-developer ~/lar_rollback_service $ mvn clean install sonar:sonar 


Project Specific Report :-


Code Coverage Report :-







Hope it will help you. Happy and quality development.


Follow for more details on Google+ and @Facebook!!!



See More  -




Sunday, 4 October 2015

[ERROR] Unknown lifecycle phase "mvn"


[ERROR] Unknown lifecycle phase "mvn" You must specify a valid lifecycle phase or a goal in the format.

This Jenkins issue is very common, while configuring the maven job in jenkins. One of my peer faced this issue during her development. Then we investigate and fixed this issue.


Jenkins Configuration :-




Error Log :-

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.316 s
[INFO] Finished at: 2015-10-05T15:10:46+11:00
[INFO] Final Memory: 20M/491M
[INFO] ------------------------------------------------------------------------
[ERROR] Unknown lifecycle phase "mvn". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/LifecyclePhaseNotFoundException
[JENKINS] Archiving /opt/jenkins_dev/workspace/MYAPP_BIZ/pom.xml to au.com.mycompany.group.lar.testing.biz/Myapp/0.0.1-SNAPSHOT/Myapp-0.0.1-SNAPSHOT.pom
channel stopped
Started calculate disk usage of build
Finished Calculation of disk usage of build in 0 seconds
Started calculate disk usage of workspace
Finished Calculation of disk usage of workspace in 0 seconds
Finished: FAILURE


Solution :-

Its a simple mistake, that while configuring the jenkins jobs maven goal, we are simple trying with mvn clean install  , which is a against maven life cycle policy.

So , we fixed this by removing the mvn  . Correct command is clean install. Then it worked.




Hope it will help you. Happy Building.

Follow for more details on Google+ and @Facebook!!!



Find More Solutions -


Sunday, 27 September 2015

JAXB Convert Object to XML String

JAXB Marshalling - Converts Java Object to XML. 



You need to JAXB library jar , download from here.

Really JAXB makes developers life easy and help to develop stable and reliable coding. Below Example shows how to convert the Java object into XML format.

Book.java



package com.javadevelopersguide;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Book {
private String name;
private String author;
private String price;
public String getName() {
return name;
}
@XmlElement
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
@XmlElement
public void setAuthor(String author) {
this.author = author;
}
public String getPrice() {
return price;
}
@XmlElement
public void setPrice(String price) {
this.price = price;
}
}




JAXBObjectToXML.java


package com.javadevelopersguide;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
/**
 *
 * @author Manoj
 *
 */
public class JAXBObjectToXML {
/**
* @param args
*/
public static void main(String[] args) {
Book book=new Book();
book.setAuthor("M Bardhan");
book.setName("Java Cookbook");
book.setPrice("$200");
try {
JAXBContext jaxbContext=JAXBContext.newInstance(Book.class);
Marshaller marshaller=jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true);
marshaller.marshal(book, System.out);
} catch (JAXBException e) {
System.out.println("Error occured ::"+e.getMessage());
}
}
}

Output XML :-

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<book>
    <author>M Bardhan</author>
    <name>Java Cookbook</name>
    <price>$200</price>
</book>



Hope it will help you.

Follow for more details on Google+ and @Facebook!!!





Monday, 21 September 2015

java.io.FileNotFoundException: class path resource

java.io.FileNotFoundException: class path resource 



This issue I faced while loading the war file on Tomcat. This may be a minor issue, but I faced this issue and spend some time to fix this issue.

Actually , I was working on Tomcat newly and I was not sure what configuration we need to load the properties file. Normally all the properties files are placed in class path.

I placed the properties file inside the Tomcat , but I don't know why this issue was coming.

Issue log :-


25/08/2015 1:58:08 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /customer_service_gateway-1.0.2-SNAPSHOT threw load() exception
java.io.FileNotFoundException: class path resource [customer_service_gateway/customer.properties] cannot be opened because it does not exist
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:157)
    at org.springframework.core.io.support.EncodedResource.getInputStream(EncodedResource.java:143)
    at org.springframework.core.io.support.PropertiesLoaderUtils.fillProperties(PropertiesLoaderUtils.java:98)
    at org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:175)
    at org.springframework.core.io.support.PropertiesLoaderSupport.mergeProperties(PropertiesLoaderSupport.java:156)
    at org.springframework.beans.factory.config.PropertiesFactoryBean.createInstance(PropertiesFactoryBean.java:113)
    at org.springframework.beans.factory.config.PropertiesFactoryBean.createProperties(PropertiesFactoryBean.java:98)
    at org.springframework.beans.factory.config.PropertiesFactoryBean.afterPropertiesSet(PropertiesFactoryBean.java:69)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1541)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1479)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1387)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1128)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198)
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:657)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461)
    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:651)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:599)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:665)
    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:518)
    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:459)
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
    at javax.servlet.GenericServlet.init(GenericServlet.java:160)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5123)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5407)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:976)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1653)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:662)

The issue was , tomcat loader was not able to locate the file . So , you need to configure this manually. 

Finally , I fixed this by configure the properties directory in tomcat. You need to explicitly mention the properties location from where your tomcat can read the library and other properties. But, its not always advisable .


You can add the <Tomcat Home Directory> into catalina.properties file. 

Example :-
 shared.loader=/usr/java/apache-tomcat-7.0.41
Note :- Catalina.properties file is inside <Tomcat Home Directory> /conf



Hope it will help you.

Friday, 11 September 2015

How to find list of all open files in Linux/UNIX

How to find list of all open files in Linux/UNIX


Its really very simple to find the list of open files on UNIX/Linux. As you know linux/unix kernel has many powerful commands which helps a lot.

For checking the list of all open files on your system, you can use the command

Command :-

lsof

lsof - list open files , this has many command options.Some important options as below :

-p - for specific PID
-u - for specific user


Example :-

lsof -u manoj


Output :-

lsof      9963 manoj  mem       REG                8,1     52120 11276171 /lib/x86_64-linux-gnu/libnss_files-2.15.so
lsof      9963 manoj  mem       REG                8,1     47680 11276175 /lib/x86_64-linux-gnu/libnss_nis-2.15.so
lsof      9963 manoj  mem       REG                8,1     97248 11276165 /lib/x86_64-linux-gnu/libnsl-2.15.so
lsof      9963 manoj  mem       REG                8,1     35680 11276167 /lib/x86_64-linux-gnu/libnss_compat-2.15.so
lsof      9963 manoj  mem       REG                8,1   7224832  5511486 /usr/lib/locale/locale-archive
lsof      9963 manoj  mem       REG                8,1   1815224 11276120 /lib/x86_64-linux-gnu/libc-2.15.so
lsof      9963 manoj  mem       REG                8,1    149280 11276100 /lib/x86_64-linux-gnu/ld-2.15.so
lsof      9963 manoj  mem       REG                8,1     26258  5769171 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
lsof      9963 manoj    0u      CHR              136,0       0t0        3 /dev/pts/0
lsof      9963 manoj    1u      CHR              136,0       0t0        3 /dev/pts/0
lsof      9963 manoj    2u      CHR              136,0       0t0        3 /dev/pts/0
lsof      9963 manoj    3r      DIR                0,3         0        1 /proc
lsof      9963 manoj    4r      DIR                0,3         0    64363 /proc/9963/fd
lsof      9963 manoj    5w     FIFO                0,8       0t0    64368 pipe
lsof      9963 manoj    6r     FIFO                0,8       0t0    64369 pipe
lsof      9964 manoj  cwd       DIR                8,1      4096  3932162 /home/manoj
lsof      9964 manoj  rtd       DIR                8,1      4096        2 /
lsof      9964 manoj  txt       REG                8,1    131312  5505664 /usr/bin/lsof
lsof      9964 manoj  mem       REG                8,1     52120 11276171 /lib/x86_64-linux-gnu/libnss_files-2.15.so
lsof      9964 manoj  mem       REG                8,1     47680 11276175 /lib/x86_64-linux-gnu/libnss_nis-2.15.so
lsof      9964 manoj  mem       REG                8,1     97248 11276165 /lib/x86_64-linux-gnu/libnsl-2.15.so
lsof      9964 manoj  mem       REG                8,1     35680 11276167 /lib/x86_64-linux-gnu/libnss_compat-2.15.so
lsof      9964 manoj  mem       REG                8,1   7224832  5511486 /usr/lib/locale/locale-archive
lsof      9964 manoj  mem       REG                8,1   1815224 11276120 /lib/x86_64-linux-gnu/libc-2.15.so
lsof      9964 manoj  mem       REG                8,1    149280 11276100 /lib/x86_64-linux-gnu/ld-2.15.so


Apart from there are many other options you can use to find more powerful lsof command.

Example 2:-

manoj@manoj-HP-ProBook-6450b:~$ ps -ef | lsof -p 9987
COMMAND    PID USER   FD      TYPE DEVICE SIZE/OFF NODE NAME
kworker/u 9987 root  cwd   unknown                      /proc/9987/cwd (readlink: Permission denied)
kworker/u 9987 root  rtd   unknown                      /proc/9987/root (readlink: Permission denied)
kworker/u 9987 root  txt   unknown                      /proc/9987/exe (readlink: Permission denied)
kworker/u 9987 root NOFD                                /proc/9987/fd (opendir: Permission denied)




Hope it will help you.
Follow for more details on Google+ and @Facebook!!!

Find More :-